diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 1e0149918..bffdc5688 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -17,8 +17,8 @@ # Set Olive sources and resources set(OLIVE_SOURCES - core.h - core.cpp + core.h + core.cpp ) #set(OLIVE_RESOURCES) @@ -47,15 +47,15 @@ add_subdirectory(window) qt_add_translation(OLIVE_QM_FILES ${OLIVE_TS_FILES}) set(QRC_BODY "") -foreach(QM_FILE ${OLIVE_QM_FILES}) - get_filename_component(QM_FILENAME_COMPONENT ${QM_FILE} NAME_WE) - string(APPEND QRC_BODY "${QM_FILE}\n") -endforeach() +foreach (QM_FILE ${OLIVE_QM_FILES}) + get_filename_component(QM_FILENAME_COMPONENT ${QM_FILE} NAME_WE) + string(APPEND QRC_BODY "${QM_FILE}\n") +endforeach () configure_file(ts/translations.qrc.in ts/translations.qrc @ONLY) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - ${CMAKE_CURRENT_BINARY_DIR}/ts/translations.qrc + ${OLIVE_RESOURCES} + ${CMAKE_CURRENT_BINARY_DIR}/ts/translations.qrc render/job/pluginjob.cpp render/job/pluginjob.h widget/nodeparamview/nodeparambutton.cpp @@ -64,18 +64,18 @@ set(OLIVE_RESOURCES # Add version object add_library(olive-version-obj - OBJECT - version.cpp - version.h + OBJECT + version.cpp + version.h ) target_link_libraries(olive-version-obj PRIVATE Qt${QT_VERSION_MAJOR}::Core) -target_compile_options(olive-version-obj PRIVATE -DAPPVERSION="${PROJECT_VERSION}" -DAPPVERSIONLONG="${PROJECT_LONG_VERSION}" ) +target_compile_options(olive-version-obj PRIVATE -DAPPVERSION="${PROJECT_VERSION}" -DAPPVERSIONLONG="${PROJECT_LONG_VERSION}") # Add main library add_library(libolive-editor - OBJECT - ${OLIVE_SOURCES} - ${OLIVE_RESOURCES} + OBJECT + ${OLIVE_SOURCES} + ${OLIVE_RESOURCES} ) add_subdirectory(common) add_subdirectory(pluginSupport) @@ -89,164 +89,164 @@ set_target_properties(libolive-editor PROPERTIES PREFIX "") option(OAK_ENABLE_DYNAMIC_RENDER_BACKEND "Build and use the dynamic render backend adapter" ON) if (OAK_ENABLE_DYNAMIC_RENDER_BACKEND) - set_target_properties(libolive-editor PROPERTIES POSITION_INDEPENDENT_CODE ON) - target_compile_definitions(libolive-editor PRIVATE OAK_ENABLE_DYNAMIC_RENDER_BACKEND) + set_target_properties(libolive-editor PROPERTIES POSITION_INDEPENDENT_CODE ON) + target_compile_definitions(libolive-editor PRIVATE OAK_ENABLE_DYNAMIC_RENDER_BACKEND) - foreach(target olivecore kddockwidgets) - if (TARGET ${target}) - set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON) - endif() - endforeach() + foreach (target olivecore kddockwidgets) + if (TARGET ${target}) + set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON) + endif () + endforeach () - # Render core library: the minimal set of code required by the OpenGL/Vulkan backend - # libraries. Keeping this separate from libolive-editor prevents the backends from - # dragging in editor-wide state (project, task, cache, UI, etc.). - add_library(libolive-rendercore STATIC - common/avframeptr.h - common/define.h - common/filefunctions.cpp - common/filefunctions.h - common/qtutils.cpp - common/qtutils.h - common/xmlutils.cpp - common/xmlutils.h - node/param.cpp - node/param.h - node/splitvalue.h - node/value.cpp - node/value.h - node/valuedatabase.cpp - node/valuedatabase.h - render/backend/dynamicrenderer.cpp - render/backend/dynamicrenderer.h - render/backend/renderbackend_c.h - render/job/acceleratedjob.cpp - render/job/acceleratedjob.h - render/job/shaderjob.h - render/renderer.cpp - render/renderer.h - render/shadercode.h - render/texture.cpp - render/texture.h - render/videoparams.cpp - render/videoparams.h - ) - set_target_properties(libolive-rendercore PROPERTIES POSITION_INDEPENDENT_CODE ON) - target_include_directories(libolive-rendercore PUBLIC - ${CMAKE_SOURCE_DIR}/app - ${CMAKE_SOURCE_DIR}/third_party/openfx/include - ${CMAKE_SOURCE_DIR}/third_party/openfx/HostSupport/include - ${OLIVE_INCLUDE_DIRS} - ) - target_link_libraries(libolive-rendercore PUBLIC ${OLIVE_LIBRARIES} OfxHost) - target_compile_definitions(libolive-rendercore PUBLIC ${OLIVE_DEFINITIONS}) - target_compile_options(libolive-rendercore PUBLIC ${OLIVE_COMPILE_OPTIONS}) - - add_library(oakgl SHARED - render/opengl/openglbackend_c.cpp - render/opengl/openglrenderer.cpp - render/opengl/openglrenderer.h - ) - target_link_libraries(oakgl PRIVATE libolive-rendercore) - target_compile_definitions(oakgl PRIVATE OAK_RENDER_BACKEND_PLUGIN) - set_target_properties(oakgl PROPERTIES - OUTPUT_NAME oakgl - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ) - if(WIN32) - set_target_properties(oakgl PROPERTIES PREFIX "") - endif() - install(TARGETS oakgl - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - ) - - if(Vulkan_FOUND) - add_library(oakvulkan SHARED - render/vulkan/vulkanbackend_c.cpp - render/vulkan/vulkanrenderer.cpp - render/vulkan/vulkanrenderer.h + # Render core library: the minimal set of code required by the OpenGL/Vulkan backend + # libraries. Keeping this separate from libolive-editor prevents the backends from + # dragging in editor-wide state (project, task, cache, UI, etc.). + add_library(libolive-rendercore STATIC + common/avframeptr.h + common/define.h + common/filefunctions.cpp + common/filefunctions.h + common/qtutils.cpp + common/qtutils.h + common/xmlutils.cpp + common/xmlutils.h + node/param.cpp + node/param.h + node/splitvalue.h + node/value.cpp + node/value.h + node/valuedatabase.cpp + node/valuedatabase.h + render/backend/dynamicrenderer.cpp + render/backend/dynamicrenderer.h + render/backend/renderbackend_c.h + render/job/acceleratedjob.cpp + render/job/acceleratedjob.h + render/job/shaderjob.h + render/renderer.cpp + render/renderer.h + render/shadercode.h + render/texture.cpp + render/texture.h + render/videoparams.cpp + render/videoparams.h ) - target_link_libraries(oakvulkan PRIVATE libolive-rendercore) - target_link_libraries(oakvulkan PRIVATE Vulkan::Vulkan) - target_compile_definitions(oakvulkan PRIVATE OAK_HAS_VULKAN) - if(SHADERC_FOUND) - target_link_libraries(oakvulkan PRIVATE ${SHADERC_LIBRARIES}) - target_include_directories(oakvulkan PRIVATE ${SHADERC_INCLUDE_DIRS}) - target_compile_definitions(oakvulkan PRIVATE OAK_HAS_SHADERC) - endif() - set_target_properties(oakvulkan PROPERTIES - OUTPUT_NAME oakvulkan - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + set_target_properties(libolive-rendercore PROPERTIES POSITION_INDEPENDENT_CODE ON) + target_include_directories(libolive-rendercore PUBLIC + ${CMAKE_SOURCE_DIR}/app + ${CMAKE_SOURCE_DIR}/third_party/openfx/include + ${CMAKE_SOURCE_DIR}/third_party/openfx/HostSupport/include + ${OLIVE_INCLUDE_DIRS} ) - if(WIN32) - set_target_properties(oakvulkan PROPERTIES PREFIX "") - endif() - install(TARGETS oakvulkan - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib + target_link_libraries(libolive-rendercore PUBLIC ${OLIVE_LIBRARIES} OfxHost) + target_compile_definitions(libolive-rendercore PUBLIC ${OLIVE_DEFINITIONS}) + target_compile_options(libolive-rendercore PUBLIC ${OLIVE_COMPILE_OPTIONS}) + + add_library(oakgl SHARED + render/opengl/openglbackend_c.cpp + render/opengl/openglrenderer.cpp + render/opengl/openglrenderer.h ) - endif() -endif() + target_link_libraries(oakgl PRIVATE libolive-rendercore) + target_compile_definitions(oakgl PRIVATE OAK_RENDER_BACKEND_PLUGIN) + set_target_properties(oakgl PROPERTIES + OUTPUT_NAME oakgl + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + if (WIN32) + set_target_properties(oakgl PROPERTIES PREFIX "") + endif () + install(TARGETS oakgl + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) + + if (Vulkan_FOUND) + add_library(oakvulkan SHARED + render/vulkan/vulkanbackend_c.cpp + render/vulkan/vulkanrenderer.cpp + render/vulkan/vulkanrenderer.h + ) + target_link_libraries(oakvulkan PRIVATE libolive-rendercore) + target_link_libraries(oakvulkan PRIVATE Vulkan::Vulkan) + target_compile_definitions(oakvulkan PRIVATE OAK_HAS_VULKAN) + if (SHADERC_FOUND) + target_link_libraries(oakvulkan PRIVATE ${SHADERC_LIBRARIES}) + target_include_directories(oakvulkan PRIVATE ${SHADERC_INCLUDE_DIRS}) + target_compile_definitions(oakvulkan PRIVATE OAK_HAS_SHADERC) + endif () + set_target_properties(oakvulkan PROPERTIES + OUTPUT_NAME oakvulkan + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + if (WIN32) + set_target_properties(oakvulkan PROPERTIES PREFIX "") + endif () + install(TARGETS oakvulkan + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) + endif () +endif () add_library(oakgl-cabi-check OBJECT - render/opengl/openglbackend_c.cpp + render/opengl/openglbackend_c.cpp ) target_include_directories(oakgl-cabi-check PRIVATE - ${CMAKE_SOURCE_DIR}/app - ${CMAKE_SOURCE_DIR}/third_party/openfx/include - ${CMAKE_SOURCE_DIR}/third_party/openfx/HostSupport/include - ${OLIVE_INCLUDE_DIRS} + ${CMAKE_SOURCE_DIR}/app + ${CMAKE_SOURCE_DIR}/third_party/openfx/include + ${CMAKE_SOURCE_DIR}/third_party/openfx/HostSupport/include + ${OLIVE_INCLUDE_DIRS} ) target_link_libraries(oakgl-cabi-check PRIVATE ${OLIVE_LIBRARIES} OfxHost) target_compile_definitions(oakgl-cabi-check PRIVATE ${OLIVE_DEFINITIONS}) target_compile_options(oakgl-cabi-check PRIVATE ${OLIVE_COMPILE_OPTIONS}) -if(Vulkan_FOUND) - add_library(oakvulkan-cabi-check OBJECT - render/vulkan/vulkanbackend_c.cpp - render/vulkan/vulkanrenderer.cpp - render/vulkan/vulkanrenderer.h - ) - target_include_directories(oakvulkan-cabi-check PRIVATE - ${CMAKE_SOURCE_DIR}/app - ${CMAKE_SOURCE_DIR}/third_party/openfx/include - ${CMAKE_SOURCE_DIR}/third_party/openfx/HostSupport/include - ${OLIVE_INCLUDE_DIRS} - ) - target_link_libraries(oakvulkan-cabi-check PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets) - target_link_libraries(oakvulkan-cabi-check PRIVATE Vulkan::Vulkan) - target_compile_definitions(oakvulkan-cabi-check PRIVATE OAK_HAS_VULKAN) - if(SHADERC_FOUND) - target_link_libraries(oakvulkan-cabi-check PRIVATE ${SHADERC_LIBRARIES}) - target_include_directories(oakvulkan-cabi-check PRIVATE ${SHADERC_INCLUDE_DIRS}) - target_compile_definitions(oakvulkan-cabi-check PRIVATE OAK_HAS_SHADERC) - endif() - target_compile_definitions(oakvulkan-cabi-check PRIVATE ${OLIVE_DEFINITIONS}) - target_compile_options(oakvulkan-cabi-check PRIVATE ${OLIVE_COMPILE_OPTIONS}) -endif() +if (Vulkan_FOUND) + add_library(oakvulkan-cabi-check OBJECT + render/vulkan/vulkanbackend_c.cpp + render/vulkan/vulkanrenderer.cpp + render/vulkan/vulkanrenderer.h + ) + target_include_directories(oakvulkan-cabi-check PRIVATE + ${CMAKE_SOURCE_DIR}/app + ${CMAKE_SOURCE_DIR}/third_party/openfx/include + ${CMAKE_SOURCE_DIR}/third_party/openfx/HostSupport/include + ${OLIVE_INCLUDE_DIRS} + ) + target_link_libraries(oakvulkan-cabi-check PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets) + target_link_libraries(oakvulkan-cabi-check PRIVATE Vulkan::Vulkan) + target_compile_definitions(oakvulkan-cabi-check PRIVATE OAK_HAS_VULKAN) + if (SHADERC_FOUND) + target_link_libraries(oakvulkan-cabi-check PRIVATE ${SHADERC_LIBRARIES}) + target_include_directories(oakvulkan-cabi-check PRIVATE ${SHADERC_INCLUDE_DIRS}) + target_compile_definitions(oakvulkan-cabi-check PRIVATE OAK_HAS_SHADERC) + endif () + target_compile_definitions(oakvulkan-cabi-check PRIVATE ${OLIVE_DEFINITIONS}) + target_compile_options(oakvulkan-cabi-check PRIVATE ${OLIVE_COMPILE_OPTIONS}) +endif () # Add application add_executable(olive-editor - main.cpp - $ - $ + main.cpp + $ + $ ) target_include_directories(olive-editor PUBLIC pluginSupport) target_link_libraries(olive-editor PUBLIC OfxHost) add_dependencies(olive-editor oakgl-cabi-check) if (OAK_ENABLE_DYNAMIC_RENDER_BACKEND) - add_dependencies(olive-editor oakgl) - if (TARGET oakvulkan) - add_dependencies(olive-editor oakvulkan) - endif() -endif() + add_dependencies(olive-editor oakgl) + if (TARGET oakvulkan) + add_dependencies(olive-editor oakvulkan) + endif () +endif () # Ensure the render worker is always built together with the editor on every platform. add_dependencies(olive-editor olive-render-worker) @@ -258,79 +258,79 @@ set_target_properties(olive-editor PROPERTIES OUTPUT_NAME "oak-editor") # currently the full OLIVE_LIBRARIES for simplicity; trimming UI-only dependencies is a later-phase # cleanup (see render-process-isolation plan). add_executable(olive-render-worker - render/worker/workermain.cpp - $ - $ + render/worker/workermain.cpp + $ + $ ) set_target_properties(olive-render-worker PROPERTIES OUTPUT_NAME "oak-render-worker") if (APPLE) - target_sources(olive-render-worker PRIVATE render/worker/workermain_mac.mm) - target_link_libraries(olive-render-worker PRIVATE "-framework Cocoa") -endif() + target_sources(olive-render-worker PRIVATE render/worker/workermain_mac.mm) + target_link_libraries(olive-render-worker PRIVATE "-framework Cocoa") +endif () target_include_directories(olive-render-worker PUBLIC pluginSupport) target_link_libraries(olive-render-worker PUBLIC OfxHost) if (OAK_ENABLE_DYNAMIC_RENDER_BACKEND) - target_compile_definitions(olive-render-worker PRIVATE OAK_ENABLE_DYNAMIC_RENDER_BACKEND) - add_dependencies(olive-render-worker oakgl) - if (TARGET oakvulkan) - add_dependencies(olive-render-worker oakvulkan) - endif() -endif() + target_compile_definitions(olive-render-worker PRIVATE OAK_ENABLE_DYNAMIC_RENDER_BACKEND) + add_dependencies(olive-render-worker oakgl) + if (TARGET oakvulkan) + add_dependencies(olive-render-worker oakvulkan) + endif () +endif () # Create docs if doxygen was found -if(DOXYGEN_FOUND) - set(DOXYGEN_PROJECT_NAME "Oak Video Editor") - set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/docs") - set(DOXYGEN_EXTRACT_ALL "YES") - set(DOXYGEN_EXTRACT_PRIVATE "YES") - doxygen_add_docs(docs ALL ${OLIVE_SOURCES}) -endif() +if (DOXYGEN_FOUND) + set(DOXYGEN_PROJECT_NAME "Oak Video Editor") + set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/docs") + set(DOXYGEN_EXTRACT_ALL "YES") + set(DOXYGEN_EXTRACT_PRIVATE "YES") + doxygen_add_docs(docs ALL ${OLIVE_SOURCES}) +endif () # Platform-specific deployment preferences if (WIN32) - # Set Windows application icon - target_sources(olive-editor PRIVATE packaging/windows/resources.rc) + # Set Windows application icon + target_sources(olive-editor PRIVATE packaging/windows/resources.rc) - # Preserve folder structure in visual studio - source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${OLIVE_SOURCES}) + # Preserve folder structure in visual studio + source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${OLIVE_SOURCES}) -elseif(APPLE) - # Set Mac application icon - set(OLIVE_ICON packaging/macos/oak.icns) - target_sources(olive-editor PRIVATE ${OLIVE_ICON}) +elseif (APPLE) + # Set Mac application icon + set(OLIVE_ICON packaging/macos/oak.icns) + target_sources(olive-editor PRIVATE ${OLIVE_ICON}) - # Set Mac bundle properties - set_target_properties(olive-editor PROPERTIES - MACOSX_BUNDLE TRUE - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/packaging/macos/MacOSXBundleInfo.plist.in - MACOSX_BUNDLE_GUI_IDENTIFIER org.oakvideoeditor.Oak - MACOSX_BUNDLE_ICON_FILE oak.icns - MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} - MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION} - MACOSX_BUNDLE_BUNDLE_NAME "Oak Video Editor" - MACOSX_BUNDLE_INFO_STRING "Oak Video Editor ${PROJECT_LONG_VERSION}" - MACOSX_BUNDLE_COPYRIGHT "©2018-2021 Olive Studios LLC and others. Fork maintained by Oak Video Editor Team." - RESOURCE "${OLIVE_ICON}" - OUTPUT_NAME "Oak" - ) - - # Copy the render worker and dynamic render backends into the app bundle. - # They are looked up in QCoreApplication::applicationDirPath(), which on - # macOS points to Oak.app/Contents/MacOS. - add_custom_command(TARGET olive-editor POST_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory $/Contents/MacOS - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ - COMMENT "Copying oak-render-worker and render backends into Oak.app" - ) - if (TARGET oakvulkan) - add_custom_command(TARGET olive-editor POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ + # Set Mac bundle properties + set_target_properties(olive-editor PROPERTIES + MACOSX_BUNDLE TRUE + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/packaging/macos/MacOSXBundleInfo.plist.in + MACOSX_BUNDLE_GUI_IDENTIFIER org.oakvideoeditor.Oak + MACOSX_BUNDLE_ICON_FILE oak.icns + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION} + MACOSX_BUNDLE_BUNDLE_NAME "Oak Video Editor" + MACOSX_BUNDLE_INFO_STRING "Oak Video Editor ${PROJECT_LONG_VERSION}" + MACOSX_BUNDLE_COPYRIGHT "©2018-2021 Olive Studios LLC and others. Fork maintained by Oak Video Editor Team." + RESOURCE "${OLIVE_ICON}" + OUTPUT_NAME "Oak" ) - endif() -elseif(UNIX) - # Set Linux-specific properties for application - install(TARGETS olive-editor RUNTIME DESTINATION bin) -endif() + + # Copy the render worker and dynamic render backends into the app bundle. + # They are looked up in QCoreApplication::applicationDirPath(), which on + # macOS points to Oak.app/Contents/MacOS. + add_custom_command(TARGET olive-editor POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory $/Contents/MacOS + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ + COMMENT "Copying oak-render-worker and render backends into Oak.app" + ) + if (TARGET oakvulkan) + add_custom_command(TARGET olive-editor POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/Contents/MacOS/ + ) + endif () +elseif (UNIX) + # Set Linux-specific properties for application + install(TARGETS olive-editor RUNTIME DESTINATION bin) +endif () # Set link libraries target_link_libraries(olive-editor PRIVATE ${OLIVE_LIBRARIES}) @@ -354,10 +354,10 @@ target_include_directories(olive-render-worker PRIVATE ${OLIVE_INCLUDE_DIRS}) # Install the render worker alongside the editor on Linux. if (UNIX AND NOT APPLE) - install(TARGETS olive-render-worker RUNTIME DESTINATION bin) -endif() + install(TARGETS olive-render-worker RUNTIME DESTINATION bin) +endif () # Add crash handler if (GoogleCrashpad_FOUND AND Qt${QT_VERSION_MAJOR}Network_FOUND) - add_subdirectory(crashhandler) -endif() + add_subdirectory(crashhandler) +endif () diff --git a/app/audio/CMakeLists.txt b/app/audio/CMakeLists.txt index a9b08de04..e4b632c7d 100644 --- a/app/audio/CMakeLists.txt +++ b/app/audio/CMakeLists.txt @@ -15,18 +15,18 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - audio/audiolevelmeter.cpp - audio/audiolevelmeter.h - audio/audiosynchronizer.cpp - audio/audiosynchronizer.h - audio/audiowaveformsync.cpp - audio/audiowaveformsync.h - audio/audiomanager.cpp - audio/audiomanager.h - audio/audioprocessor.cpp - audio/audioprocessor.h - audio/audiovisualwaveform.cpp - audio/audiovisualwaveform.h - PARENT_SCOPE + ${OLIVE_SOURCES} + audio/audiolevelmeter.cpp + audio/audiolevelmeter.h + audio/audiosynchronizer.cpp + audio/audiosynchronizer.h + audio/audiowaveformsync.cpp + audio/audiowaveformsync.h + audio/audiomanager.cpp + audio/audiomanager.h + audio/audioprocessor.cpp + audio/audioprocessor.h + audio/audiovisualwaveform.cpp + audio/audiovisualwaveform.h + PARENT_SCOPE ) diff --git a/app/audio/audiolevelmeter.cpp b/app/audio/audiolevelmeter.cpp index 68f03d5b5..af85abafb 100644 --- a/app/audio/audiolevelmeter.cpp +++ b/app/audio/audiolevelmeter.cpp @@ -57,7 +57,8 @@ AudioLevelMeter::AnalyzeSampleBuffer(const core::SampleBuffer &samples) square_sum += value * value; } - const double mean_square = square_sum / static_cast(sample_count); + const double mean_square = + square_sum / static_cast(sample_count); const double rms = std::sqrt(mean_square); ChannelStats channel_stats; @@ -74,8 +75,8 @@ AudioLevelMeter::AnalyzeSampleBuffer(const core::SampleBuffer &samples) } stats.silence = qFuzzyIsNull(stats.max_peak_linear); - stats.integrated_lufs = PowerToLufs( - total_square / static_cast(total_samples)); + stats.integrated_lufs = + PowerToLufs(total_square / static_cast(total_samples)); return stats; } diff --git a/app/audio/audiosynchronizer.cpp b/app/audio/audiosynchronizer.cpp index 21c1ecb5e..7ce2e9a32 100644 --- a/app/audio/audiosynchronizer.cpp +++ b/app/audio/audiosynchronizer.cpp @@ -28,8 +28,7 @@ AudioSynchronizer::Placement AudioSynchronizer::PlaceBySourceTime( const core::rational &reference_timeline_in) { Placement placement; - if (!reference.has_source_start_time || - !candidate.has_source_start_time || + if (!reference.has_source_start_time || !candidate.has_source_start_time || reference.source_start_time.isNaN() || candidate.source_start_time.isNaN()) { return placement; @@ -55,10 +54,10 @@ AudioSynchronizer::Placement AudioSynchronizer::PlaceByWaveformOffset( return placement; } - placement.timeline_in = - reference_timeline_in + - core::rational::fromDouble(static_cast(candidate_offset_samples) / - static_cast(sample_rate)); + placement.timeline_in = reference_timeline_in + + core::rational::fromDouble( + static_cast(candidate_offset_samples) / + static_cast(sample_rate)); placement.valid = !placement.timeline_in.isNaN(); return placement; } diff --git a/app/audio/audiosynchronizer.h b/app/audio/audiosynchronizer.h index 00dd28629..f32b6665b 100644 --- a/app/audio/audiosynchronizer.h +++ b/app/audio/audiosynchronizer.h @@ -41,13 +41,13 @@ public: bool valid = false; }; - static Placement PlaceBySourceTime(const SourceClip &reference, - const SourceClip &candidate, - const core::rational &reference_timeline_in); + static Placement + PlaceBySourceTime(const SourceClip &reference, const SourceClip &candidate, + const core::rational &reference_timeline_in); - static Placement PlaceByWaveformOffset( - const core::rational &reference_timeline_in, - int64_t candidate_offset_samples, int sample_rate); + static Placement + PlaceByWaveformOffset(const core::rational &reference_timeline_in, + int64_t candidate_offset_samples, int sample_rate); }; } diff --git a/app/audio/audiowaveformsync.cpp b/app/audio/audiowaveformsync.cpp index 075dd656f..48e30f90d 100644 --- a/app/audio/audiowaveformsync.cpp +++ b/app/audio/audiowaveformsync.cpp @@ -96,7 +96,8 @@ AudioWaveformSync::OffsetResult AudioWaveformSync::EstimateEnvelopeOffset( int64_t best_lag = 0; for (int64_t lag = -max_offset_windows; lag <= max_offset_windows; lag++) { - const int reference_start = static_cast(std::max(0, -lag)); + const int reference_start = + static_cast(std::max(0, -lag)); const int candidate_start = static_cast(std::max(0, lag)); const int overlap = std::min(reference.size() - reference_start, candidate.size() - candidate_start); @@ -142,8 +143,7 @@ AudioWaveformSync::OffsetResult AudioWaveformSync::EstimateEnvelopeOffset( if (best_score > -2.0) { result.valid = true; result.confidence = std::max(0.0, best_score); - result.offset_samples = - best_lag * static_cast(window_samples); + result.offset_samples = best_lag * static_cast(window_samples); } return result; diff --git a/app/audio/audiowaveformsync.h b/app/audio/audiowaveformsync.h index 539b17d1c..9aa9ee310 100644 --- a/app/audio/audiowaveformsync.h +++ b/app/audio/audiowaveformsync.h @@ -38,8 +38,8 @@ public: bool valid = false; }; - static QVector - ExtractRmsEnvelope(const core::SampleBuffer &samples, size_t window_samples); + static QVector ExtractRmsEnvelope(const core::SampleBuffer &samples, + size_t window_samples); static OffsetResult EstimateOffset(const core::SampleBuffer &reference, const core::SampleBuffer &candidate, diff --git a/app/cli/CMakeLists.txt b/app/cli/CMakeLists.txt index c261a3e00..6a21cb3e1 100644 --- a/app/cli/CMakeLists.txt +++ b/app/cli/CMakeLists.txt @@ -18,6 +18,6 @@ add_subdirectory(cliprogress) add_subdirectory(clitask) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/cli/cliprogress/CMakeLists.txt b/app/cli/cliprogress/CMakeLists.txt index 621c498da..74fbc01ce 100644 --- a/app/cli/cliprogress/CMakeLists.txt +++ b/app/cli/cliprogress/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - cli/cliprogress/cliprogressdialog.h - cli/cliprogress/cliprogressdialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + cli/cliprogress/cliprogressdialog.h + cli/cliprogress/cliprogressdialog.cpp + PARENT_SCOPE ) diff --git a/app/cli/clitask/CMakeLists.txt b/app/cli/clitask/CMakeLists.txt index 8e5f4782b..75d71fdbe 100644 --- a/app/cli/clitask/CMakeLists.txt +++ b/app/cli/clitask/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - cli/clitask/clitaskdialog.h - cli/clitask/clitaskdialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + cli/clitask/clitaskdialog.h + cli/clitask/clitaskdialog.cpp + PARENT_SCOPE ) diff --git a/app/codec/CMakeLists.txt b/app/codec/CMakeLists.txt index 5c577e26c..d832c1b0c 100644 --- a/app/codec/CMakeLists.txt +++ b/app/codec/CMakeLists.txt @@ -18,24 +18,24 @@ add_subdirectory(ffmpeg) add_subdirectory(oiio) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - codec/conformmanager.cpp - codec/conformmanager.h - codec/decoder.cpp - codec/decoder.h - codec/encoder.cpp - codec/encoder.h - codec/exportcodec.cpp - codec/exportcodec.h - codec/exportformat.cpp - codec/exportformat.h - codec/frame.cpp - codec/frame.h - codec/planarfiledevice.cpp - codec/planarfiledevice.h - codec/proxymanager.cpp - codec/proxymanager.h - codec/timecodemetadata.cpp - codec/timecodemetadata.h - PARENT_SCOPE + ${OLIVE_SOURCES} + codec/conformmanager.cpp + codec/conformmanager.h + codec/decoder.cpp + codec/decoder.h + codec/encoder.cpp + codec/encoder.h + codec/exportcodec.cpp + codec/exportcodec.h + codec/exportformat.cpp + codec/exportformat.h + codec/frame.cpp + codec/frame.h + codec/planarfiledevice.cpp + codec/planarfiledevice.h + codec/proxymanager.cpp + codec/proxymanager.h + codec/timecodemetadata.cpp + codec/timecodemetadata.h + PARENT_SCOPE ) diff --git a/app/codec/decoder.h b/app/codec/decoder.h index ee1614be7..8b918b926 100644 --- a/app/codec/decoder.h +++ b/app/codec/decoder.h @@ -32,7 +32,7 @@ extern "C" { #include #include - #include "codec/frame.h" +#include "codec/frame.h" #include "node/block/block.h" #include "node/project/footage/footagedescription.h" #include "render/cancelatom.h" diff --git a/app/codec/ffmpeg/CMakeLists.txt b/app/codec/ffmpeg/CMakeLists.txt index 0401fba78..eb713b464 100644 --- a/app/codec/ffmpeg/CMakeLists.txt +++ b/app/codec/ffmpeg/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - codec/ffmpeg/ffmpegdecoder.cpp - codec/ffmpeg/ffmpegdecoder.h - codec/ffmpeg/ffmpegencoder.cpp - codec/ffmpeg/ffmpegencoder.h - PARENT_SCOPE + ${OLIVE_SOURCES} + codec/ffmpeg/ffmpegdecoder.cpp + codec/ffmpeg/ffmpegdecoder.h + codec/ffmpeg/ffmpegencoder.cpp + codec/ffmpeg/ffmpegencoder.h + PARENT_SCOPE ) diff --git a/app/codec/ffmpeg/ffmpegdecoder.cpp b/app/codec/ffmpeg/ffmpegdecoder.cpp index de971bae4..ef8ce51b1 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.cpp +++ b/app/codec/ffmpeg/ffmpegdecoder.cpp @@ -25,11 +25,11 @@ extern "C" { #include } -namespace olive { +namespace olive +{ static FramePtr CopyPackedAVFrameToFrame(const AVFramePtr &src, - PixelFormat format, - int channel_count, + PixelFormat format, int channel_count, const rational ×tamp) { if (!src || !src->data[0]) { @@ -48,8 +48,7 @@ static FramePtr CopyPackedAVFrameToFrame(const AVFramePtr &src, VideoParams::GetBytesPerPixel(format, channel_count); for (int y = 0; y < frame->height(); y++) { memcpy(frame->data() + y * frame->linesize_bytes(), - src->data[0] + y * src->linesize[0], - size_t(row_bytes)); + src->data[0] + y * src->linesize[0], size_t(row_bytes)); } return frame; @@ -97,7 +96,8 @@ namespace olive QVariant Yuv2RgbShader; QVariant DeinterlaceShader; -namespace { +namespace +{ constexpr int64_t kAnalyzeDurationUs = 5000000; constexpr int64_t kProbeSizeBytes = 20000000; @@ -133,8 +133,9 @@ void DiscardSubtitleStreams(AVFormatContext *ctx) } } -TimecodeMetadata::SourceTime ExtractSourceStartTime( - AVDictionary *metadata, const rational &timebase, int sample_rate) +TimecodeMetadata::SourceTime ExtractSourceStartTime(AVDictionary *metadata, + const rational &timebase, + int sample_rate) { if (!metadata) { return TimecodeMetadata::SourceTime(); @@ -423,7 +424,7 @@ TexturePtr FFmpegDecoder::RetrieveVideoInternal(const RetrieveVideoParams &p) // Perform any CPU processing required AVFramePtr ptr = PreProcessFrame(f, p); - f=std::move(ptr); + f = std::move(ptr); if (!f) { qWarning() << "PreProcessFrame failed"; return nullptr; @@ -458,14 +459,15 @@ FramePtr FFmpegDecoder::RetrieveVideoFrameInternal(const RetrieveVideoParams &p) AVFramePtr dest = CreateAVFramePtr(); dest->width = f->width; dest->height = f->height; - dest->format = p.maximum_format == PixelFormat::U8 - ? AV_PIX_FMT_RGBA - : AV_PIX_FMT_RGBA64; + dest->format = p.maximum_format == PixelFormat::U8 ? AV_PIX_FMT_RGBA : + AV_PIX_FMT_RGBA64; dest->color_range = f->color_range; dest->colorspace = f->colorspace; if (p.divider > 1) { - dest->width = VideoParams::GetScaledDimension(dest->width, p.divider); - dest->height = VideoParams::GetScaledDimension(dest->height, p.divider); + dest->width = + VideoParams::GetScaledDimension(dest->width, p.divider); + dest->height = + VideoParams::GetScaledDimension(dest->height, p.divider); } int r = av_frame_get_buffer(dest.get(), 0); @@ -504,8 +506,8 @@ FramePtr FFmpegDecoder::RetrieveVideoFrameInternal(const RetrieveVideoParams &p) // zero-initializes the destination, leaving alpha at 0. The color // management shader later multiplies RGB by alpha, producing black. // Ensure alpha is opaque for source formats that have no alpha. - const AVPixFmtDescriptor *src_desc = av_pix_fmt_desc_get( - static_cast(f->format)); + const AVPixFmtDescriptor *src_desc = + av_pix_fmt_desc_get(static_cast(f->format)); if (src_desc && !(src_desc->flags & AV_PIX_FMT_FLAG_ALPHA)) { const int bpc = (dest->format == AV_PIX_FMT_RGBA) ? 1 : 2; const int stride = dest->linesize[0]; @@ -522,11 +524,10 @@ FramePtr FFmpegDecoder::RetrieveVideoFrameInternal(const RetrieveVideoParams &p) } return CopyPackedAVFrameToFrame(dest, - dest->format == AV_PIX_FMT_RGBA - ? PixelFormat::U8 - : PixelFormat::U16, - VideoParams::kRGBAChannelCount, - p.time); + dest->format == AV_PIX_FMT_RGBA ? + PixelFormat::U8 : + PixelFormat::U16, + VideoParams::kRGBAChannelCount, p.time); } return nullptr; @@ -580,7 +581,8 @@ FootageDescription FFmpegDecoder::Probe(const QString &filename, AVFormatContext *fmt_ctx = nullptr; AVDictionary *format_opts = nullptr; ApplyFormatOpenOptions(&format_opts); - error_code = avformat_open_input(&fmt_ctx, filename_c, nullptr, &format_opts); + error_code = + avformat_open_input(&fmt_ctx, filename_c, nullptr, &format_opts); av_dict_free(&format_opts); TuneFormatContext(fmt_ctx); DiscardSubtitleStreams(fmt_ctx); @@ -591,9 +593,8 @@ FootageDescription FFmpegDecoder::Probe(const QString &filename, avformat_find_stream_info(fmt_ctx, nullptr); int64_t footage_duration = fmt_ctx->duration; - TimecodeMetadata::SourceTime source_start_time = - ExtractSourceStartTime(fmt_ctx->metadata, rational(1, AV_TIME_BASE), - 0); + TimecodeMetadata::SourceTime source_start_time = ExtractSourceStartTime( + fmt_ctx->metadata, rational(1, AV_TIME_BASE), 0); bool duration_guessed_from_bitrate = (fmt_ctx->duration_estimation_method == @@ -625,78 +626,87 @@ FootageDescription FFmpegDecoder::Probe(const QString &filename, avstream->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE)) { if (avstream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { { - // Read at least two frames to get more information about this video stream - AVPacket *pkt = av_packet_alloc(); - AVFrame *frame = av_frame_alloc(); + // Read at least two frames to get more information about this video stream + AVPacket *pkt = av_packet_alloc(); + AVFrame *frame = av_frame_alloc(); - VideoParams::Interlacing interlacing = VideoParams::kInterlaceNone; - AVRational pixel_aspect_ratio = {1, 1}; - AVRational frame_rate = avstream->avg_frame_rate; - AVPixelFormat compatible_pix_fmt = - FFmpegUtils::GetCompatiblePixelFormat( - static_cast(avstream->codecpar->format)); - bool image_is_still = false; + VideoParams::Interlacing interlacing = + VideoParams::kInterlaceNone; + AVRational pixel_aspect_ratio = { 1, 1 }; + AVRational frame_rate = avstream->avg_frame_rate; + AVPixelFormat compatible_pix_fmt = + FFmpegUtils::GetCompatiblePixelFormat( + static_cast( + avstream->codecpar->format)); + bool image_is_still = false; - { - Instance instance; - if (instance.Open(filename_c, avstream->index) != 0) - goto cleanup; + { + Instance instance; + if (instance.Open(filename_c, avstream->index) != 0) + goto cleanup; - AVCodecContext *avctx = instance.codec_ctx(); - interlacing = FFmpegFieldOrderToOlive(avctx->field_order); + AVCodecContext *avctx = instance.codec_ctx(); + interlacing = + FFmpegFieldOrderToOlive(avctx->field_order); - if (instance.GetFrame(pkt, frame) >= 0) { - pixel_aspect_ratio = - av_guess_sample_aspect_ratio(instance.fmt_ctx(), - instance.avstream(), frame); - frame_rate = - av_guess_frame_rate(instance.fmt_ctx(), - instance.avstream(), frame); - } + if (instance.GetFrame(pkt, frame) >= 0) { + pixel_aspect_ratio = + av_guess_sample_aspect_ratio( + instance.fmt_ctx(), instance.avstream(), + frame); + frame_rate = av_guess_frame_rate( + instance.fmt_ctx(), instance.avstream(), + frame); + } - int ret = instance.GetFrame(pkt, frame); - if (ret == AVERROR_EOF) { - image_is_still = true; - } else if (avstream->duration == AV_NOPTS_VALUE || - duration_guessed_from_bitrate) { - int64_t last_ts = frame->best_effort_timestamp; - while (instance.GetFrame(pkt, frame) >= 0 && - (!cancelled || !cancelled->IsCancelled())) - last_ts = frame->best_effort_timestamp; - avstream->duration = last_ts; - } + int ret = instance.GetFrame(pkt, frame); + if (ret == AVERROR_EOF) { + image_is_still = true; + } else if (avstream->duration == AV_NOPTS_VALUE || + duration_guessed_from_bitrate) { + int64_t last_ts = frame->best_effort_timestamp; + while ( + instance.GetFrame(pkt, frame) >= 0 && + (!cancelled || !cancelled->IsCancelled())) + last_ts = frame->best_effort_timestamp; + avstream->duration = last_ts; + } - instance.Close(); - } + instance.Close(); + } - cleanup: - av_frame_free(&frame); - av_packet_free(&pkt); +cleanup: + av_frame_free(&frame); + av_packet_free(&pkt); - VideoParams stream; - stream.set_stream_index(i); - stream.set_width(avstream->codecpar->width); - stream.set_height(avstream->codecpar->height); - stream.set_video_type(image_is_still ? VideoParams::kVideoTypeStill - : VideoParams::kVideoTypeVideo); - stream.set_format(GetNativePixelFormat(compatible_pix_fmt)); - stream.set_channel_count(GetNativeChannelCount(compatible_pix_fmt)); - stream.set_interlacing(interlacing); // <-- 已正确填充 - stream.set_pixel_aspect_ratio(pixel_aspect_ratio); - stream.set_frame_rate(frame_rate); - stream.set_start_time(avstream->start_time); - stream.set_time_base(avstream->time_base); - stream.set_duration(avstream->duration); - stream.set_color_range(avstream->codecpar->color_range == AVCOL_RANGE_JPEG - ? VideoParams::kColorRangeFull - : VideoParams::kColorRangeLimited); - stream.set_premultiplied_alpha(false); + VideoParams stream; + stream.set_stream_index(i); + stream.set_width(avstream->codecpar->width); + stream.set_height(avstream->codecpar->height); + stream.set_video_type(image_is_still ? + VideoParams::kVideoTypeStill : + VideoParams::kVideoTypeVideo); + stream.set_format( + GetNativePixelFormat(compatible_pix_fmt)); + stream.set_channel_count( + GetNativeChannelCount(compatible_pix_fmt)); + stream.set_interlacing(interlacing); // <-- 已正确填充 + stream.set_pixel_aspect_ratio(pixel_aspect_ratio); + stream.set_frame_rate(frame_rate); + stream.set_start_time(avstream->start_time); + stream.set_time_base(avstream->time_base); + stream.set_duration(avstream->duration); + stream.set_color_range( + avstream->codecpar->color_range == + AVCOL_RANGE_JPEG ? + VideoParams::kColorRangeFull : + VideoParams::kColorRangeLimited); + stream.set_premultiplied_alpha(false); - desc.AddVideoStream(stream); - image_is_still ? still_streams++ : video_streams++; + desc.AddVideoStream(stream); + image_is_still ? still_streams++ : video_streams++; } - } else if (avstream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { // Create an audio stream object @@ -837,7 +847,7 @@ bool FFmpegDecoder::ConformAudioInternal(const QVector &filenames, } // Create resampling context AVChannelLayout layout = params.channel_layout(); - SwrContext *resampler=NULL; + SwrContext *resampler = NULL; swr_alloc_set_opts2( &resampler, &layout, FFmpegUtils::GetFFmpegSampleFormat(params.format()), @@ -1270,14 +1280,14 @@ AVFramePtr FFmpegDecoder::RetrieveFrame(const rational &time, AVFramePtr FFmpegDecoder::TransferHardwareFrame(AVFramePtr f) { - if (!instance_.hwaccel_enabled() || - f->format != instance_.hw_pix_fmt()) { + if (!instance_.hwaccel_enabled() || f->format != instance_.hw_pix_fmt()) { return f; } AVFrame *sw_frame = av_frame_alloc(); if (!sw_frame) { - qCritical() << "Failed to allocate software frame for hardware transfer"; + qCritical() + << "Failed to allocate software frame for hardware transfer"; return nullptr; } @@ -1291,8 +1301,9 @@ AVFramePtr FFmpegDecoder::TransferHardwareFrame(AVFramePtr f) ret = av_frame_copy_props(sw_frame, f.get()); if (ret < 0) { - qWarning() << "Failed to copy frame properties during hardware transfer:" - << FFmpegError(ret); + qWarning() + << "Failed to copy frame properties during hardware transfer:" + << FFmpegError(ret); } return CreateAVFramePtr(sw_frame); @@ -1372,7 +1383,8 @@ bool FFmpegDecoder::Instance::Open(const char *filename, int stream_index) // Open file in a format context AVDictionary *format_opts = nullptr; ApplyFormatOpenOptions(&format_opts); - int error_code = avformat_open_input(&fmt_ctx_, filename, nullptr, &format_opts); + int error_code = + avformat_open_input(&fmt_ctx_, filename, nullptr, &format_opts); av_dict_free(&format_opts); TuneFormatContext(fmt_ctx_); DiscardSubtitleStreams(fmt_ctx_); @@ -1420,7 +1432,7 @@ bool FFmpegDecoder::Instance::Open(const char *filename, int stream_index) // Handle failure to copy parameters if (error_code < 0) { qCritical() - << "Failed to copy parameters from AVStream to AVCodecContext"; + << "Failed to copy parameters from AVStream to AVCodecContext"; return false; } @@ -1437,13 +1449,14 @@ bool FFmpegDecoder::Instance::Open(const char *filename, int stream_index) error_code = avcodec_open2(codec_ctx_, codec, &opts_); if (error_code == 0) { hwaccel_enabled_ = true; - qDebug() << "Hardware decoding enabled for" << filename - << "using" << av_hwdevice_get_type_name(hw_device_type_) + qDebug() << "Hardware decoding enabled for" << filename << "using" + << av_hwdevice_get_type_name(hw_device_type_) << "pixel format" << av_get_pix_fmt_name(hw_pix_fmt_); return true; } - qWarning() << "Failed to open hardware codec, falling back to software decoding:"; + qWarning() + << "Failed to open hardware codec, falling back to software decoding:"; char buf[512]; av_strerror(error_code, buf, 512); qWarning() << FFmpegError(error_code) << buf; @@ -1454,11 +1467,13 @@ bool FFmpegDecoder::Instance::Open(const char *filename, int stream_index) codec_ctx_ = avcodec_alloc_context3(codec); if (codec_ctx_ == nullptr) { - qCritical() << "Failed to allocate codec context for software fallback"; + qCritical() + << "Failed to allocate codec context for software fallback"; return false; } - error_code = avcodec_parameters_to_context(codec_ctx_, avstream_->codecpar); + error_code = + avcodec_parameters_to_context(codec_ctx_, avstream_->codecpar); if (error_code < 0) { qCritical() << "Failed to copy parameters from AVStream to AVCodecContext"; @@ -1494,25 +1509,26 @@ AVHWDeviceType FFmpegDecoder::Instance::ChooseHardwareDevice() } } #elif defined(Q_OS_WIN) - for (AVHWDeviceType type : { AV_HWDEVICE_TYPE_D3D11VA, AV_HWDEVICE_TYPE_DXVA2, - AV_HWDEVICE_TYPE_CUDA }) { + for (AVHWDeviceType type : + { AV_HWDEVICE_TYPE_D3D11VA, AV_HWDEVICE_TYPE_DXVA2, + AV_HWDEVICE_TYPE_CUDA }) { if (av_hwdevice_find_type_by_name(av_hwdevice_get_type_name(type)) != AV_HWDEVICE_TYPE_NONE) { return type; } } #elif defined(Q_OS_MACOS) - if (av_hwdevice_find_type_by_name( - av_hwdevice_get_type_name(AV_HWDEVICE_TYPE_VIDEOTOOLBOX)) != - AV_HWDEVICE_TYPE_NONE) { + if (av_hwdevice_find_type_by_name(av_hwdevice_get_type_name( + AV_HWDEVICE_TYPE_VIDEOTOOLBOX)) != AV_HWDEVICE_TYPE_NONE) { return AV_HWDEVICE_TYPE_VIDEOTOOLBOX; } #endif return AV_HWDEVICE_TYPE_NONE; } -AVPixelFormat FFmpegDecoder::Instance::GetHardwareFormat( - AVCodecContext *ctx, const AVPixelFormat *pix_fmts) +AVPixelFormat +FFmpegDecoder::Instance::GetHardwareFormat(AVCodecContext *ctx, + const AVPixelFormat *pix_fmts) { const Instance *inst = static_cast(ctx->opaque); for (const AVPixelFormat *p = pix_fmts; *p != AV_PIX_FMT_NONE; p++) { @@ -1521,7 +1537,8 @@ AVPixelFormat FFmpegDecoder::Instance::GetHardwareFormat( } } - qWarning() << "Hardware pixel format not supported by decoder, using first software format"; + qWarning() + << "Hardware pixel format not supported by decoder, using first software format"; return pix_fmts[0]; } @@ -1547,9 +1564,9 @@ bool FFmpegDecoder::Instance::InitHardwareAcceleration(const AVCodec *codec) } if (hw_pix_fmt_ == AV_PIX_FMT_NONE) { - qDebug() << "Codec" << codec->id - << "does not support hardware device type" - << av_hwdevice_get_type_name(device_type); + qDebug() + << "Codec" << codec->id << "does not support hardware device type" + << av_hwdevice_get_type_name(device_type); return false; } diff --git a/app/codec/ffmpeg/ffmpegdecoder.h b/app/codec/ffmpeg/ffmpegdecoder.h index 42a44ad6f..0a54492af 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.h +++ b/app/codec/ffmpeg/ffmpegdecoder.h @@ -74,7 +74,8 @@ protected: virtual bool OpenInternal() override; virtual TexturePtr RetrieveVideoInternal(const RetrieveVideoParams &p) override; - virtual FramePtr RetrieveVideoFrameInternal(const RetrieveVideoParams &p) override; + virtual FramePtr + RetrieveVideoFrameInternal(const RetrieveVideoParams &p) override; virtual bool ConformAudioInternal(const QVector &filenames, const AudioParams ¶ms, CancelAtom *cancelled) override; @@ -145,7 +146,7 @@ private: private: static AVHWDeviceType ChooseHardwareDevice(); static AVPixelFormat GetHardwareFormat(AVCodecContext *ctx, - const AVPixelFormat *pix_fmts); + const AVPixelFormat *pix_fmts); bool InitHardwareAcceleration(const AVCodec *codec); void CleanupHardwareAcceleration(); diff --git a/app/codec/oiio/CMakeLists.txt b/app/codec/oiio/CMakeLists.txt index 33cc8e2bb..4aa2d8f10 100644 --- a/app/codec/oiio/CMakeLists.txt +++ b/app/codec/oiio/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - codec/oiio/oiiodecoder.cpp - codec/oiio/oiiodecoder.h - codec/oiio/oiioencoder.cpp - codec/oiio/oiioencoder.h - PARENT_SCOPE + ${OLIVE_SOURCES} + codec/oiio/oiiodecoder.cpp + codec/oiio/oiiodecoder.h + codec/oiio/oiioencoder.cpp + codec/oiio/oiioencoder.h + PARENT_SCOPE ) diff --git a/app/codec/oiio/oiiodecoder.cpp b/app/codec/oiio/oiiodecoder.cpp index 60b2e9c98..76f03fa12 100644 --- a/app/codec/oiio/oiiodecoder.cpp +++ b/app/codec/oiio/oiiodecoder.cpp @@ -185,7 +185,8 @@ FramePtr OIIODecoder::RetrieveVideoFrameInternal(const RetrieveVideoParams &p) if (!frame->allocate()) { return nullptr; } - memcpy(frame->data(), buffer_.const_data(), size_t(buffer_.allocated_size())); + memcpy(frame->data(), buffer_.const_data(), + size_t(buffer_.allocated_size())); return frame; } diff --git a/app/codec/oiio/oiiodecoder.h b/app/codec/oiio/oiiodecoder.h index 4029e173c..662626173 100644 --- a/app/codec/oiio/oiiodecoder.h +++ b/app/codec/oiio/oiiodecoder.h @@ -51,7 +51,8 @@ protected: virtual bool OpenInternal() override; virtual TexturePtr RetrieveVideoInternal(const RetrieveVideoParams &p) override; - virtual FramePtr RetrieveVideoFrameInternal(const RetrieveVideoParams &p) override; + virtual FramePtr + RetrieveVideoFrameInternal(const RetrieveVideoParams &p) override; virtual void CloseInternal() override; private: diff --git a/app/codec/proxymanager.cpp b/app/codec/proxymanager.cpp index 8ddad7bc7..84c09a731 100644 --- a/app/codec/proxymanager.cpp +++ b/app/codec/proxymanager.cpp @@ -52,14 +52,12 @@ QString ProxyManager::GetProxyFilename(const QString &cache_path, const QString proxy_dir = GetProxyDirectory(cache_path); const QString extension = params.extension.isEmpty() ? QStringLiteral("mp4") : params.extension; - const QString filename = QStringLiteral("%1-%2.%3x%4.v%5.%6") - .arg(FileFunctions::GetUniqueFileIdentifier( - source_filename), - QString::number(stream_index), - QString::number(params.width), - QString::number(params.height), - QString::number(params.version), - extension); + const QString filename = + QStringLiteral("%1-%2.%3x%4.v%5.%6") + .arg(FileFunctions::GetUniqueFileIdentifier(source_filename), + QString::number(stream_index), QString::number(params.width), + QString::number(params.height), + QString::number(params.version), extension); return QDir(proxy_dir).filePath(filename); } @@ -119,9 +117,10 @@ ProxyManager::ProxyStateFromString(const QString &state) return kProxyMissing; } -ProxyManager::Proxy ProxyManager::GetOrStartProxy( - const QString &cache_path, const QString &source_filename, - int stream_index, const ProxyParams ¶ms) +ProxyManager::Proxy +ProxyManager::GetOrStartProxy(const QString &cache_path, + const QString &source_filename, int stream_index, + const ProxyParams ¶ms) { QMutexLocker locker(&mutex_); @@ -145,10 +144,9 @@ ProxyManager::Proxy ProxyManager::GetOrStartProxy( } const QString working_filename = GetWorkingProxyFilename(filename); - ProxyTask *task = new ProxyTask(source_filename, stream_index, params, - working_filename); - connect(task, &Task::Finished, this, - &ProxyManager::ProxyTaskFinished); + ProxyTask *task = + new ProxyTask(source_filename, stream_index, params, working_filename); + connect(task, &Task::Finished, this, &ProxyManager::ProxyTaskFinished); task->moveToThread(TaskManager::instance()->thread()); QMetaObject::invokeMethod(TaskManager::instance(), "AddTask", Qt::QueuedConnection, Q_ARG(Task *, task)); diff --git a/app/codec/proxymanager.h b/app/codec/proxymanager.h index ff6cb1a48..0b59925ec 100644 --- a/app/codec/proxymanager.h +++ b/app/codec/proxymanager.h @@ -90,8 +90,7 @@ public: static ProxyState ProxyStateFromString(const QString &state); Proxy GetOrStartProxy(const QString &cache_path, - const QString &source_filename, - int stream_index, + const QString &source_filename, int stream_index, const ProxyParams ¶ms); signals: diff --git a/app/codec/timecodemetadata.cpp b/app/codec/timecodemetadata.cpp index ebaa92088..c884cf3f0 100644 --- a/app/codec/timecodemetadata.cpp +++ b/app/codec/timecodemetadata.cpp @@ -28,8 +28,9 @@ namespace olive { -TimecodeMetadata::SourceTime TimecodeMetadata::FromTimecodeString( - const QString &timecode, const core::rational &timebase) +TimecodeMetadata::SourceTime +TimecodeMetadata::FromTimecodeString(const QString &timecode, + const core::rational &timebase) { SourceTime result; const QString trimmed = timecode.trimmed(); @@ -39,8 +40,8 @@ TimecodeMetadata::SourceTime TimecodeMetadata::FromTimecodeString( bool ok = false; const core::Timecode::Display display = - trimmed.contains(';') ? core::Timecode::kTimecodeDropFrame - : core::Timecode::kTimecodeNonDropFrame; + trimmed.contains(';') ? core::Timecode::kTimecodeDropFrame : + core::Timecode::kTimecodeNonDropFrame; result.time = core::Timecode::timecode_to_time(trimmed.toStdString(), timebase, display, &ok); result.valid = ok; @@ -50,8 +51,9 @@ TimecodeMetadata::SourceTime TimecodeMetadata::FromTimecodeString( return result; } -TimecodeMetadata::SourceTime TimecodeMetadata::FromBwfTimeReference( - const QString &time_reference, int sample_rate) +TimecodeMetadata::SourceTime +TimecodeMetadata::FromBwfTimeReference(const QString &time_reference, + int sample_rate) { SourceTime result; if (sample_rate <= 0) { @@ -73,9 +75,8 @@ TimecodeMetadata::SourceTime TimecodeMetadata::FromBwfTimeReference( const qulonglong rational_limit = static_cast(std::numeric_limits::max()); if (numerator <= rational_limit && denominator <= rational_limit) { - result.time = - core::rational(static_cast(numerator), - static_cast(denominator)); + result.time = core::rational(static_cast(numerator), + static_cast(denominator)); } else { result.time = core::rational::fromDouble( static_cast(samples) / static_cast(sample_rate)); diff --git a/app/common/CMakeLists.txt b/app/common/CMakeLists.txt index e09f1fce6..36c838363 100644 --- a/app/common/CMakeLists.txt +++ b/app/common/CMakeLists.txt @@ -16,42 +16,42 @@ # along with this program. If not, see . target_sources(libolive-editor PRIVATE - cancelableobject.h - channellayout.h - commandlineparser.cpp - commandlineparser.h - crashpadinterface.cpp - crashpadinterface.h - crashpadutils.h - Current.cpp - Current.h - debug.cpp - debug.h - decibel.h - define.h - ffmpegutils.cpp - ffmpegutils.h - filefunctions.cpp - filefunctions.h - html.cpp - html.h - jobtime.cpp - jobtime.h - lerp.h - memorypool.h - ocioutils.cpp - ocioutils.h - oiioutils.cpp - oiioutils.h - otioutils.h - qtutils.cpp - qtutils.h - range.h - ratiodialog.cpp - ratiodialog.h - threadsafemap.h - tohex.h - util.h - xmlutils.cpp - xmlutils.h + cancelableobject.h + channellayout.h + commandlineparser.cpp + commandlineparser.h + crashpadinterface.cpp + crashpadinterface.h + crashpadutils.h + Current.cpp + Current.h + debug.cpp + debug.h + decibel.h + define.h + ffmpegutils.cpp + ffmpegutils.h + filefunctions.cpp + filefunctions.h + html.cpp + html.h + jobtime.cpp + jobtime.h + lerp.h + memorypool.h + ocioutils.cpp + ocioutils.h + oiioutils.cpp + oiioutils.h + otioutils.h + qtutils.cpp + qtutils.h + range.h + ratiodialog.cpp + ratiodialog.h + threadsafemap.h + tohex.h + util.h + xmlutils.cpp + xmlutils.h ) diff --git a/app/common/Current.h b/app/common/Current.h index 8b6a50914..312b4eb77 100644 --- a/app/common/Current.h +++ b/app/common/Current.h @@ -25,31 +25,31 @@ class Current { public: - static Current& getInstance() + static Current &getInstance() { return current; } - olive::VideoParams& currentVideoParams() + olive::VideoParams ¤tVideoParams() { return currentVideoParams_; } - olive::AudioParams& currentAudioParams() + olive::AudioParams ¤tAudioParams() { return currentAudioParams_; } - void setCurrentVideoParams(olive::VideoParams& params) + void setCurrentVideoParams(olive::VideoParams ¶ms) { currentVideoParams_ = params; } - void setCurrentAudioParams(olive::AudioParams& params) + void setCurrentAudioParams(olive::AudioParams ¶ms) { currentAudioParams_ = params; } - void setCurrentVideoParams(olive::VideoParams&& params) + void setCurrentVideoParams(olive::VideoParams &¶ms) { currentVideoParams_ = params; } - void setCurrentAudioParams(olive::AudioParams&& params) + void setCurrentAudioParams(olive::AudioParams &¶ms) { currentAudioParams_ = params; } @@ -73,10 +73,12 @@ public: return plugin_cache_; } - void setPluginCache(std::shared_ptr cache) + void + setPluginCache(std::shared_ptr cache) { plugin_cache_ = cache; } + private: static Current current; olive::VideoParams currentVideoParams_; @@ -85,6 +87,4 @@ private: std::shared_ptr plugin_cache_; }; - - #endif //CURRENT_H diff --git a/app/config/CMakeLists.txt b/app/config/CMakeLists.txt index 7e1a01dd8..5c841a89c 100644 --- a/app/config/CMakeLists.txt +++ b/app/config/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - config/config.h - config/config.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + config/config.h + config/config.cpp + PARENT_SCOPE ) diff --git a/app/config/config.cpp b/app/config/config.cpp index 750bb9a80..8b248de11 100644 --- a/app/config/config.cpp +++ b/app/config/config.cpp @@ -341,8 +341,8 @@ void Config::Load() // Config::Load() is called before Core (and therefore the main window) // is constructed, so we cannot use Core::instance()->main_window() as // the message box parent. Passing nullptr creates a top-level dialog. - QWidget *parent = Core::instance() ? Core::instance()->main_window() - : nullptr; + QWidget *parent = Core::instance() ? Core::instance()->main_window() : + nullptr; QMessageBox::critical( parent, QCoreApplication::translate("Config", "Error loading settings"), diff --git a/app/core.cpp b/app/core.cpp index 45fda3ce9..45e77d3f5 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -80,37 +80,37 @@ #include "widget/menu/menushared.h" #include "window/mainwindow/mainwindow.h" -namespace { +namespace +{ QStringList FootageVideoExtensions() { return QStringList{ - QStringLiteral("mp4"), QStringLiteral("mov"), QStringLiteral("m4v"), - QStringLiteral("avi"), QStringLiteral("mpg"), QStringLiteral("mpeg"), - QStringLiteral("m2ts"), QStringLiteral("mts"), QStringLiteral("ts"), - QStringLiteral("webm"), QStringLiteral("wmv"), QStringLiteral("flv"), - QStringLiteral("3gp"), QStringLiteral("3g2"), QStringLiteral("mxf") + QStringLiteral("mp4"), QStringLiteral("mov"), QStringLiteral("m4v"), + QStringLiteral("avi"), QStringLiteral("mpg"), QStringLiteral("mpeg"), + QStringLiteral("m2ts"), QStringLiteral("mts"), QStringLiteral("ts"), + QStringLiteral("webm"), QStringLiteral("wmv"), QStringLiteral("flv"), + QStringLiteral("3gp"), QStringLiteral("3g2"), QStringLiteral("mxf") }; } QStringList FootageAudioExtensions() { - return QStringList{ - QStringLiteral("wav"), QStringLiteral("mp3"), QStringLiteral("flac"), - QStringLiteral("aac"), QStringLiteral("ogg"), QStringLiteral("opus"), - QStringLiteral("m4a"), QStringLiteral("alac"), QStringLiteral("aif"), - QStringLiteral("aiff"), QStringLiteral("aifc"), QStringLiteral("wma") - }; + return QStringList{ QStringLiteral("wav"), QStringLiteral("mp3"), + QStringLiteral("flac"), QStringLiteral("aac"), + QStringLiteral("ogg"), QStringLiteral("opus"), + QStringLiteral("m4a"), QStringLiteral("alac"), + QStringLiteral("aif"), QStringLiteral("aiff"), + QStringLiteral("aifc"), QStringLiteral("wma") }; } QStringList FootageImageExtensions() { - return QStringList{ - QStringLiteral("png"), QStringLiteral("jpg"), QStringLiteral("jpeg"), - QStringLiteral("tif"), QStringLiteral("tiff"), QStringLiteral("bmp"), - QStringLiteral("gif"), QStringLiteral("exr"), QStringLiteral("dpx"), - QStringLiteral("webp") - }; + return QStringList{ QStringLiteral("png"), QStringLiteral("jpg"), + QStringLiteral("jpeg"), QStringLiteral("tif"), + QStringLiteral("tiff"), QStringLiteral("bmp"), + QStringLiteral("gif"), QStringLiteral("exr"), + QStringLiteral("dpx"), QStringLiteral("webp") }; } QString BuildFootageFilterGroup(const QString &label, @@ -122,8 +122,8 @@ QString BuildFootageFilterGroup(const QString &label, patterns.append(QStringLiteral("*.%1").arg(ext)); } - return QStringLiteral("%1 (%2)") - .arg(label, patterns.join(QLatin1Char(' '))); + return QStringLiteral("%1 (%2)").arg(label, + patterns.join(QLatin1Char(' '))); } QString BuildFootageFileDialogFilter() @@ -457,9 +457,9 @@ void Core::DialogAboutShow() void Core::DialogImportShow() { // Open dialog for user to select files - QStringList files = QFileDialog::getOpenFileNames( - main_window_, tr("Import footage..."), QString(), - FootageFileDialogFilter()); + QStringList files = + QFileDialog::getOpenFileNames(main_window_, tr("Import footage..."), + QString(), FootageFileDialogFilter()); // Check if the user actually selected files to import if (!files.isEmpty()) { diff --git a/app/crashhandler/CMakeLists.txt b/app/crashhandler/CMakeLists.txt index 11b7009d5..ff0b07a68 100644 --- a/app/crashhandler/CMakeLists.txt +++ b/app/crashhandler/CMakeLists.txt @@ -16,10 +16,10 @@ # Create crash handler executable add_executable( - olive-crashhandler - crashhandler.cpp - crashhandler.h - $ + olive-crashhandler + crashhandler.cpp + crashhandler.h + $ ) # Rename the generated binary to oak-crashhandler so it matches the Oak branding. @@ -27,42 +27,42 @@ set_target_properties(olive-crashhandler PROPERTIES OUTPUT_NAME "oak-crashhandle # Disable console appearing on crash handler dialog set_target_properties(olive-crashhandler PROPERTIES - WIN32_EXECUTABLE TRUE + WIN32_EXECUTABLE TRUE ) # Set crash handler includes target_include_directories( - olive-crashhandler - PRIVATE - ${CMAKE_SOURCE_DIR}/app - ${CRASHPAD_INCLUDE_DIRS} + olive-crashhandler + PRIVATE + ${CMAKE_SOURCE_DIR}/app + ${CRASHPAD_INCLUDE_DIRS} ) # Set crash handler libs target_link_libraries( - olive-crashhandler - PRIVATE - Qt${QT_VERSION_MAJOR}::Core - Qt${QT_VERSION_MAJOR}::Gui - Qt${QT_VERSION_MAJOR}::Widgets - Qt${QT_VERSION_MAJOR}::Network - ${CRASHPAD_LIBRARIES} + olive-crashhandler + PRIVATE + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Network + ${CRASHPAD_LIBRARIES} ) set(CRASHPAD_HANDLER "crashpad_handler${CMAKE_EXECUTABLE_SUFFIX}") set(MINIDUMP_STACKWALK "minidump_stackwalk${CMAKE_EXECUTABLE_SUFFIX}") -if(APPLE) - # Move crash handler executables inside Mac app bundle - add_custom_command(TARGET olive-crashhandler POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CRASHPAD_LIBRARY_DIRS}/${CRASHPAD_HANDLER} $ - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BREAKPAD_BIN_DIR}/${MINIDUMP_STACKWALK} $ - ) -elseif(UNIX) - install(TARGETS olive-crashhandler RUNTIME DESTINATION bin) - install(PROGRAMS ${CRASHPAD_LIBRARY_DIRS}/${CRASHPAD_HANDLER} DESTINATION bin) - install(PROGRAMS ${BREAKPAD_BIN_DIR}/${MINIDUMP_STACKWALK} DESTINATION bin) -endif() +if (APPLE) + # Move crash handler executables inside Mac app bundle + add_custom_command(TARGET olive-crashhandler POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CRASHPAD_LIBRARY_DIRS}/${CRASHPAD_HANDLER} $ + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BREAKPAD_BIN_DIR}/${MINIDUMP_STACKWALK} $ + ) +elseif (UNIX) + install(TARGETS olive-crashhandler RUNTIME DESTINATION bin) + install(PROGRAMS ${CRASHPAD_LIBRARY_DIRS}/${CRASHPAD_HANDLER} DESTINATION bin) + install(PROGRAMS ${BREAKPAD_BIN_DIR}/${MINIDUMP_STACKWALK} DESTINATION bin) +endif () target_compile_definitions(olive-crashhandler PRIVATE ${OLIVE_DEFINITIONS}) diff --git a/app/crashhandler/crashhandler.cpp b/app/crashhandler/crashhandler.cpp index aac3b3d99..70fa7c42b 100644 --- a/app/crashhandler/crashhandler.cpp +++ b/app/crashhandler/crashhandler.cpp @@ -54,9 +54,9 @@ CrashHandlerDialog::CrashHandlerDialog(const QString &report_path) QVBoxLayout *layout = new QVBoxLayout(this); - layout->addWidget(new QLabel( - tr("We're sorry, Oak Video Editor has crashed. Please help us fix it by " - "sending an error report."))); + layout->addWidget(new QLabel(tr( + "We're sorry, Oak Video Editor has crashed. Please help us fix it by " + "sending an error report."))); QSplitter *splitter = new QSplitter(Qt::Vertical); splitter->setChildrenCollapsible(false); diff --git a/app/dialog/CMakeLists.txt b/app/dialog/CMakeLists.txt index f5c628f91..adaf11b49 100644 --- a/app/dialog/CMakeLists.txt +++ b/app/dialog/CMakeLists.txt @@ -25,9 +25,9 @@ add_subdirectory(footageproperties) add_subdirectory(footagerelink) add_subdirectory(keyframeproperties) add_subdirectory(markerproperties) -if(OpenTimelineIO_FOUND) - add_subdirectory(otioproperties) -endif() +if (OpenTimelineIO_FOUND) + add_subdirectory(otioproperties) +endif () add_subdirectory(preferences) add_subdirectory(progress) add_subdirectory(projectproperties) @@ -38,6 +38,6 @@ add_subdirectory(task) add_subdirectory(text) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/dialog/about/CMakeLists.txt b/app/dialog/about/CMakeLists.txt index 6a764829f..ba9e54939 100644 --- a/app/dialog/about/CMakeLists.txt +++ b/app/dialog/about/CMakeLists.txt @@ -15,11 +15,11 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/about/about.cpp - dialog/about/about.h - dialog/about/patreon.h - dialog/about/scrollinglabel.cpp - dialog/about/scrollinglabel.h - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/about/about.cpp + dialog/about/about.h + dialog/about/patreon.h + dialog/about/scrollinglabel.cpp + dialog/about/scrollinglabel.h + PARENT_SCOPE ) diff --git a/app/dialog/about/about.cpp b/app/dialog/about/about.cpp index 8aa38b1de..d13114249 100644 --- a/app/dialog/about/about.cpp +++ b/app/dialog/about/about.cpp @@ -66,12 +66,13 @@ AboutDialog::AboutDialog(bool welcome_dialog, QWidget *parent) "

%3

" // Description "

%4

" // Fork notice "") - .arg(QApplication::applicationName(), - QApplication::applicationVersion(), - tr("Oak Video Editor is a free open source non-linear video editor. " - "This software is licensed under the GNU GPL Version 3."), - tr("This project is a fork of " - "Olive Video Editor."))); + .arg( + QApplication::applicationName(), + QApplication::applicationVersion(), + tr("Oak Video Editor is a free open source non-linear video editor. " + "This software is licensed under the GNU GPL Version 3."), + tr("This project is a fork of " + "Olive Video Editor."))); // Set text formatting label->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); diff --git a/app/dialog/about/patreon.py b/app/dialog/about/patreon.py index 5fc7a232f..55cdd640d 100644 --- a/app/dialog/about/patreon.py +++ b/app/dialog/about/patreon.py @@ -57,7 +57,7 @@ url = 'https://www.patreon.com/api/oauth2/v2/campaigns/1478705/members?include=c name_list = '' while True: - member_data = requests.get(url, headers = {"authorization": "Bearer " + os.environ.get('PATREON_KEY')}) + member_data = requests.get(url, headers={"authorization": "Bearer " + os.environ.get('PATREON_KEY')}) member_data_decoded = json.loads(member_data.text) for member in member_data_decoded["data"]: @@ -68,16 +68,17 @@ while True: name = member["attributes"]["full_name"] name_list += " QStringLiteral(\"" name_list += name.translate(str.maketrans({ - "\"": "\\\"", - "\\": "\\\\" - })) + "\"": "\\\"", + "\\": "\\\\" + })) name_list += "\")" if "links" in member_data_decoded: - url = member_data_decoded["links"]["next"] + url = member_data_decoded["links"]["next"] else: - break + break text_file = open("patreon.h", "w", encoding="utf-8") -text_file.write("#ifndef PATREON_H\n#define PATREON_H\n\n#include \n\nQStringList patrons = {\n%s\n};\n\n#endif // PATREON_H\n" % name_list) +text_file.write( + "#ifndef PATREON_H\n#define PATREON_H\n\n#include \n\nQStringList patrons = {\n%s\n};\n\n#endif // PATREON_H\n" % name_list) text_file.close() diff --git a/app/dialog/actionsearch/CMakeLists.txt b/app/dialog/actionsearch/CMakeLists.txt index c759394d2..dbebacb13 100644 --- a/app/dialog/actionsearch/CMakeLists.txt +++ b/app/dialog/actionsearch/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/actionsearch/actionsearch.h - dialog/actionsearch/actionsearch.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/actionsearch/actionsearch.h + dialog/actionsearch/actionsearch.cpp + PARENT_SCOPE ) diff --git a/app/dialog/autorecovery/CMakeLists.txt b/app/dialog/autorecovery/CMakeLists.txt index 6408b5822..44d17c39a 100644 --- a/app/dialog/autorecovery/CMakeLists.txt +++ b/app/dialog/autorecovery/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/autorecovery/autorecoverydialog.h - dialog/autorecovery/autorecoverydialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/autorecovery/autorecoverydialog.h + dialog/autorecovery/autorecoverydialog.cpp + PARENT_SCOPE ) diff --git a/app/dialog/color/CMakeLists.txt b/app/dialog/color/CMakeLists.txt index b0b2c90e4..0ebe2556d 100644 --- a/app/dialog/color/CMakeLists.txt +++ b/app/dialog/color/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/color/colordialog.h - dialog/color/colordialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/color/colordialog.h + dialog/color/colordialog.cpp + PARENT_SCOPE ) diff --git a/app/dialog/configbase/CMakeLists.txt b/app/dialog/configbase/CMakeLists.txt index b0da5d620..1ac8d3664 100644 --- a/app/dialog/configbase/CMakeLists.txt +++ b/app/dialog/configbase/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/configbase/configdialogbase.cpp - dialog/configbase/configdialogbase.h - dialog/configbase/configdialogbasetab.cpp - dialog/configbase/configdialogbasetab.h - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/configbase/configdialogbase.cpp + dialog/configbase/configdialogbase.h + dialog/configbase/configdialogbasetab.cpp + dialog/configbase/configdialogbasetab.h + PARENT_SCOPE ) diff --git a/app/dialog/diskcache/CMakeLists.txt b/app/dialog/diskcache/CMakeLists.txt index 3b11da610..745751fd9 100644 --- a/app/dialog/diskcache/CMakeLists.txt +++ b/app/dialog/diskcache/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/diskcache/diskcachedialog.h - dialog/diskcache/diskcachedialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/diskcache/diskcachedialog.h + dialog/diskcache/diskcachedialog.cpp + PARENT_SCOPE ) diff --git a/app/dialog/diskcache/diskcachedialog.cpp b/app/dialog/diskcache/diskcachedialog.cpp index 172e26adc..029950241 100644 --- a/app/dialog/diskcache/diskcachedialog.cpp +++ b/app/dialog/diskcache/diskcachedialog.cpp @@ -26,7 +26,6 @@ #include #include - namespace olive { diff --git a/app/dialog/export/CMakeLists.txt b/app/dialog/export/CMakeLists.txt index 8847c4ba4..afd8aff10 100644 --- a/app/dialog/export/CMakeLists.txt +++ b/app/dialog/export/CMakeLists.txt @@ -17,20 +17,20 @@ add_subdirectory(codec) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/export/export.cpp - dialog/export/export.h - dialog/export/exportadvancedvideodialog.cpp - dialog/export/exportadvancedvideodialog.h - dialog/export/exportaudiotab.cpp - dialog/export/exportaudiotab.h - dialog/export/exportformatcombobox.cpp - dialog/export/exportformatcombobox.h - dialog/export/exportsavepresetdialog.cpp - dialog/export/exportsavepresetdialog.h - dialog/export/exportsubtitlestab.cpp - dialog/export/exportsubtitlestab.h - dialog/export/exportvideotab.cpp - dialog/export/exportvideotab.h - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/export/export.cpp + dialog/export/export.h + dialog/export/exportadvancedvideodialog.cpp + dialog/export/exportadvancedvideodialog.h + dialog/export/exportaudiotab.cpp + dialog/export/exportaudiotab.h + dialog/export/exportformatcombobox.cpp + dialog/export/exportformatcombobox.h + dialog/export/exportsavepresetdialog.cpp + dialog/export/exportsavepresetdialog.h + dialog/export/exportsubtitlestab.cpp + dialog/export/exportsubtitlestab.h + dialog/export/exportvideotab.cpp + dialog/export/exportvideotab.h + PARENT_SCOPE ) diff --git a/app/dialog/export/codec/CMakeLists.txt b/app/dialog/export/codec/CMakeLists.txt index d68ccd1c3..2271fed21 100644 --- a/app/dialog/export/codec/CMakeLists.txt +++ b/app/dialog/export/codec/CMakeLists.txt @@ -15,18 +15,18 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/export/codec/av1section.cpp - dialog/export/codec/av1section.h - dialog/export/codec/cineformsection.cpp - dialog/export/codec/cineformsection.h - dialog/export/codec/codecsection.cpp - dialog/export/codec/codecsection.h - dialog/export/codec/codecstack.cpp - dialog/export/codec/codecstack.h - dialog/export/codec/h264section.cpp - dialog/export/codec/h264section.h - dialog/export/codec/imagesection.cpp - dialog/export/codec/imagesection.h - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/export/codec/av1section.cpp + dialog/export/codec/av1section.h + dialog/export/codec/cineformsection.cpp + dialog/export/codec/cineformsection.h + dialog/export/codec/codecsection.cpp + dialog/export/codec/codecsection.h + dialog/export/codec/codecstack.cpp + dialog/export/codec/codecstack.h + dialog/export/codec/h264section.cpp + dialog/export/codec/h264section.h + dialog/export/codec/imagesection.cpp + dialog/export/codec/imagesection.h + PARENT_SCOPE ) diff --git a/app/dialog/export/exportaudiotab.cpp b/app/dialog/export/exportaudiotab.cpp index 9b1d5cb27..c8a6a056f 100644 --- a/app/dialog/export/exportaudiotab.cpp +++ b/app/dialog/export/exportaudiotab.cpp @@ -24,7 +24,6 @@ #include #include - namespace olive { diff --git a/app/dialog/footageproperties/CMakeLists.txt b/app/dialog/footageproperties/CMakeLists.txt index 25287c233..4db26c336 100644 --- a/app/dialog/footageproperties/CMakeLists.txt +++ b/app/dialog/footageproperties/CMakeLists.txt @@ -17,8 +17,8 @@ add_subdirectory(streamproperties) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/footageproperties/footageproperties.cpp - dialog/footageproperties/footageproperties.h - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/footageproperties/footageproperties.cpp + dialog/footageproperties/footageproperties.h + PARENT_SCOPE ) diff --git a/app/dialog/footageproperties/streamproperties/CMakeLists.txt b/app/dialog/footageproperties/streamproperties/CMakeLists.txt index 3228e9520..3d6b3041f 100644 --- a/app/dialog/footageproperties/streamproperties/CMakeLists.txt +++ b/app/dialog/footageproperties/streamproperties/CMakeLists.txt @@ -15,12 +15,12 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/footageproperties/streamproperties/streamproperties.h - dialog/footageproperties/streamproperties/streamproperties.cpp - dialog/footageproperties/streamproperties/audiostreamproperties.h - dialog/footageproperties/streamproperties/audiostreamproperties.cpp - dialog/footageproperties/streamproperties/videostreamproperties.h - dialog/footageproperties/streamproperties/videostreamproperties.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/footageproperties/streamproperties/streamproperties.h + dialog/footageproperties/streamproperties/streamproperties.cpp + dialog/footageproperties/streamproperties/audiostreamproperties.h + dialog/footageproperties/streamproperties/audiostreamproperties.cpp + dialog/footageproperties/streamproperties/videostreamproperties.h + dialog/footageproperties/streamproperties/videostreamproperties.cpp + PARENT_SCOPE ) diff --git a/app/dialog/footagerelink/CMakeLists.txt b/app/dialog/footagerelink/CMakeLists.txt index 797f1c6c6..72c9ef48c 100644 --- a/app/dialog/footagerelink/CMakeLists.txt +++ b/app/dialog/footagerelink/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/footagerelink/footagerelinkdialog.h - dialog/footagerelink/footagerelinkdialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/footagerelink/footagerelinkdialog.h + dialog/footagerelink/footagerelinkdialog.cpp + PARENT_SCOPE ) diff --git a/app/dialog/keyframeproperties/CMakeLists.txt b/app/dialog/keyframeproperties/CMakeLists.txt index 6d479a925..ae9530dba 100644 --- a/app/dialog/keyframeproperties/CMakeLists.txt +++ b/app/dialog/keyframeproperties/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/keyframeproperties/keyframeproperties.h - dialog/keyframeproperties/keyframeproperties.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/keyframeproperties/keyframeproperties.h + dialog/keyframeproperties/keyframeproperties.cpp + PARENT_SCOPE ) diff --git a/app/dialog/markerproperties/CMakeLists.txt b/app/dialog/markerproperties/CMakeLists.txt index 84a130885..c6fce066f 100644 --- a/app/dialog/markerproperties/CMakeLists.txt +++ b/app/dialog/markerproperties/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/markerproperties/markerpropertiesdialog.h - dialog/markerproperties/markerpropertiesdialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/markerproperties/markerpropertiesdialog.h + dialog/markerproperties/markerpropertiesdialog.cpp + PARENT_SCOPE ) diff --git a/app/dialog/otioproperties/CMakeLists.txt b/app/dialog/otioproperties/CMakeLists.txt index 8a07ce76a..c5896118e 100644 --- a/app/dialog/otioproperties/CMakeLists.txt +++ b/app/dialog/otioproperties/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/otioproperties/otiopropertiesdialog.h - dialog/otioproperties/otiopropertiesdialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/otioproperties/otiopropertiesdialog.h + dialog/otioproperties/otiopropertiesdialog.cpp + PARENT_SCOPE ) diff --git a/app/dialog/preferences/CMakeLists.txt b/app/dialog/preferences/CMakeLists.txt index 1636674e4..7d35a7fdf 100644 --- a/app/dialog/preferences/CMakeLists.txt +++ b/app/dialog/preferences/CMakeLists.txt @@ -17,10 +17,10 @@ add_subdirectory(tabs) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/preferences/keysequenceeditor.h - dialog/preferences/keysequenceeditor.cpp - dialog/preferences/preferences.h - dialog/preferences/preferences.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/preferences/keysequenceeditor.h + dialog/preferences/keysequenceeditor.cpp + dialog/preferences/preferences.h + dialog/preferences/preferences.cpp + PARENT_SCOPE ) diff --git a/app/dialog/preferences/preferences.cpp b/app/dialog/preferences/preferences.cpp index dd6c955a7..ad1cb7d65 100644 --- a/app/dialog/preferences/preferences.cpp +++ b/app/dialog/preferences/preferences.cpp @@ -46,16 +46,19 @@ PreferencesDialog::PreferencesDialog(MainWindow *main_window, int start_tab) AddTab(new PreferencesGeneralTab(), tr("General")); AddTab(new PreferencesAppearanceTab(), tr("Appearance")); AddTab(new PreferencesAudioTab(), tr("Audio")); - AddTab(new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryTimeline), - tr("Timeline")); - AddTab(new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryPlayback), - tr("Playback")); + AddTab( + new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryTimeline), + tr("Timeline")); + AddTab( + new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryPlayback), + tr("Playback")); AddTab(new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryProject), tr("Project")); AddTab(new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryNodes), tr("Nodes")); - AddTab(new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryRendering), - tr("Rendering")); + AddTab( + new PreferencesBehaviorTab(PreferencesBehaviorTab::kCategoryRendering), + tr("Rendering")); AddTab(new PreferencesDiskTab(), tr("Disk")); AddTab(new PreferencesKeyboardTab(main_window), tr("Keyboard")); diff --git a/app/dialog/preferences/tabs/CMakeLists.txt b/app/dialog/preferences/tabs/CMakeLists.txt index c26e22fa1..9b3029a17 100644 --- a/app/dialog/preferences/tabs/CMakeLists.txt +++ b/app/dialog/preferences/tabs/CMakeLists.txt @@ -15,18 +15,18 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/preferences/tabs/preferencesgeneraltab.h - dialog/preferences/tabs/preferencesgeneraltab.cpp - dialog/preferences/tabs/preferencesbehaviortab.h - dialog/preferences/tabs/preferencesbehaviortab.cpp - dialog/preferences/tabs/preferencesdisktab.h - dialog/preferences/tabs/preferencesdisktab.cpp - dialog/preferences/tabs/preferencesappearancetab.h - dialog/preferences/tabs/preferencesappearancetab.cpp - dialog/preferences/tabs/preferencesaudiotab.h - dialog/preferences/tabs/preferencesaudiotab.cpp - dialog/preferences/tabs/preferenceskeyboardtab.h - dialog/preferences/tabs/preferenceskeyboardtab.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/preferences/tabs/preferencesgeneraltab.h + dialog/preferences/tabs/preferencesgeneraltab.cpp + dialog/preferences/tabs/preferencesbehaviortab.h + dialog/preferences/tabs/preferencesbehaviortab.cpp + dialog/preferences/tabs/preferencesdisktab.h + dialog/preferences/tabs/preferencesdisktab.cpp + dialog/preferences/tabs/preferencesappearancetab.h + dialog/preferences/tabs/preferencesappearancetab.cpp + dialog/preferences/tabs/preferencesaudiotab.h + dialog/preferences/tabs/preferencesaudiotab.cpp + dialog/preferences/tabs/preferenceskeyboardtab.h + dialog/preferences/tabs/preferenceskeyboardtab.cpp + PARENT_SCOPE ) diff --git a/app/dialog/preferences/tabs/preferencesbehaviortab.cpp b/app/dialog/preferences/tabs/preferencesbehaviortab.cpp index db2adb294..458100665 100644 --- a/app/dialog/preferences/tabs/preferencesbehaviortab.cpp +++ b/app/dialog/preferences/tabs/preferencesbehaviortab.cpp @@ -40,8 +40,7 @@ PreferencesBehaviorTab::PreferencesBehaviorTab(Category category) AddItems({ { tr("Auto-Seek to Imported Clips"), QStringLiteral("EnableSeekToImport") }, - { tr("Edit Tool Also Seeks"), - QStringLiteral("EditToolAlsoSeeks") }, + { tr("Edit Tool Also Seeks"), QStringLiteral("EditToolAlsoSeeks") }, { tr("Edit Tool Selects Links"), QStringLiteral("EditToolSelectsLinks") }, { tr("Enable Drag Files to Timeline"), @@ -83,8 +82,7 @@ PreferencesBehaviorTab::PreferencesBehaviorTab(Category category) }); break; - case kCategoryRendering: - { + case kCategoryRendering: { QLabel *backend_label = new QLabel(tr("Graphics Backend")); backend_label->setToolTip( tr("Selects the graphics API Oak should request on next launch. " @@ -94,17 +92,16 @@ PreferencesBehaviorTab::PreferencesBehaviorTab(Category category) graphics_backend_combobox_ = new QComboBox(); graphics_backend_combobox_->addItem(tr("OpenGL"), - QStringLiteral("opengl")); + QStringLiteral("opengl")); graphics_backend_combobox_->addItem(tr("Vulkan (experimental)"), - QStringLiteral("vulkan")); + QStringLiteral("vulkan")); const QString current_backend = OLIVE_CONFIG("GraphicsBackend").toString().toLower(); const int backend_index = graphics_backend_combobox_->findData( - current_backend.isEmpty() ? QStringLiteral("opengl") - : current_backend); - graphics_backend_combobox_->setCurrentIndex(backend_index >= 0 - ? backend_index - : 0); + current_backend.isEmpty() ? QStringLiteral("opengl") : + current_backend); + graphics_backend_combobox_->setCurrentIndex( + backend_index >= 0 ? backend_index : 0); QHBoxLayout *backend_layout = new QHBoxLayout(); backend_layout->addWidget(backend_label); diff --git a/app/dialog/preferences/tabs/preferencesbehaviortab.h b/app/dialog/preferences/tabs/preferencesbehaviortab.h index cc2fd4f55..76d30a8ab 100644 --- a/app/dialog/preferences/tabs/preferencesbehaviortab.h +++ b/app/dialog/preferences/tabs/preferencesbehaviortab.h @@ -49,7 +49,8 @@ public: static QString BehaviorPrefTr(const char *text) { - return QCoreApplication::translate("olive::PreferencesBehaviorTab", text); + return QCoreApplication::translate("olive::PreferencesBehaviorTab", + text); } private: diff --git a/app/dialog/preferences/tabs/preferencesdisktab.cpp b/app/dialog/preferences/tabs/preferencesdisktab.cpp index 81c08a8f4..e6d71a612 100644 --- a/app/dialog/preferences/tabs/preferencesdisktab.cpp +++ b/app/dialog/preferences/tabs/preferencesdisktab.cpp @@ -105,16 +105,14 @@ PreferencesDiskTab::PreferencesDiskTab() proxy_width_slider_ = new IntegerSlider(); proxy_width_slider_->SetMinimum(160); proxy_width_slider_->SetMaximum(4096); - proxy_width_slider_->SetValue( - OLIVE_CONFIG("ProxyWidth").value()); + proxy_width_slider_->SetValue(OLIVE_CONFIG("ProxyWidth").value()); proxy_layout->addWidget(proxy_width_slider_, proxy_row, 1); proxy_layout->addWidget(new QLabel(tr("Proxy Height:")), proxy_row, 2); proxy_height_slider_ = new IntegerSlider(); proxy_height_slider_->SetMinimum(120); proxy_height_slider_->SetMaximum(2160); - proxy_height_slider_->SetValue( - OLIVE_CONFIG("ProxyHeight").value()); + proxy_height_slider_->SetValue(OLIVE_CONFIG("ProxyHeight").value()); proxy_layout->addWidget(proxy_height_slider_, proxy_row, 3); proxy_row++; @@ -123,28 +121,22 @@ PreferencesDiskTab::PreferencesDiskTab() proxy_crf_slider_ = new IntegerSlider(); proxy_crf_slider_->SetMinimum(0); proxy_crf_slider_->SetMaximum(51); - proxy_crf_slider_->SetValue( - OLIVE_CONFIG("ProxyCRF").value()); + proxy_crf_slider_->SetValue(OLIVE_CONFIG("ProxyCRF").value()); proxy_layout->addWidget(proxy_crf_slider_, proxy_row, 1); proxy_layout->addWidget(new QLabel(tr("Proxy Preset:")), proxy_row, 2); proxy_preset_combo_ = new QComboBox(); const QStringList presets = { - QStringLiteral("ultrafast"), - QStringLiteral("superfast"), - QStringLiteral("veryfast"), - QStringLiteral("faster"), - QStringLiteral("fast"), - QStringLiteral("medium"), - QStringLiteral("slow"), - QStringLiteral("slower"), + QStringLiteral("ultrafast"), QStringLiteral("superfast"), + QStringLiteral("veryfast"), QStringLiteral("faster"), + QStringLiteral("fast"), QStringLiteral("medium"), + QStringLiteral("slow"), QStringLiteral("slower"), QStringLiteral("veryslow"), }; for (const QString &preset : presets) { proxy_preset_combo_->addItem(preset); } - proxy_preset_combo_->setCurrentText( - OLIVE_CONFIG("ProxyPreset").toString()); + proxy_preset_combo_->setCurrentText(OLIVE_CONFIG("ProxyPreset").toString()); proxy_layout->addWidget(proxy_preset_combo_, proxy_row, 3); outer_layout->addStretch(); @@ -185,8 +177,10 @@ void PreferencesDiskTab::Accept(MultiUndoCommand *command) OLIVE_CONFIG("DiskCacheAhead") = QVariant::fromValue( rational::fromDouble(cache_ahead_slider_->GetValue())); - OLIVE_CONFIG("ProxyWidth") = static_cast(proxy_width_slider_->GetValue()); - OLIVE_CONFIG("ProxyHeight") = static_cast(proxy_height_slider_->GetValue()); + OLIVE_CONFIG("ProxyWidth") = + static_cast(proxy_width_slider_->GetValue()); + OLIVE_CONFIG("ProxyHeight") = + static_cast(proxy_height_slider_->GetValue()); OLIVE_CONFIG("ProxyCRF") = static_cast(proxy_crf_slider_->GetValue()); OLIVE_CONFIG("ProxyPreset") = proxy_preset_combo_->currentText(); } diff --git a/app/dialog/preferences/tabs/preferencesgeneraltab.cpp b/app/dialog/preferences/tabs/preferencesgeneraltab.cpp index df771fb47..43e3172b9 100644 --- a/app/dialog/preferences/tabs/preferencesgeneraltab.cpp +++ b/app/dialog/preferences/tabs/preferencesgeneraltab.cpp @@ -169,21 +169,25 @@ PreferencesGeneralTab::PreferencesGeneralTab() } { - QGroupBox *behavior_groupbox = new QGroupBox(PreferencesBehaviorTab::BehaviorPrefTr("Behavior")); + QGroupBox *behavior_groupbox = + new QGroupBox(PreferencesBehaviorTab::BehaviorPrefTr("Behavior")); QVBoxLayout *behavior_layout = new QVBoxLayout(behavior_groupbox); layout->addWidget(behavior_groupbox); - hover_focus_ = new QCheckBox(PreferencesBehaviorTab::BehaviorPrefTr("Enable hover focus")); + hover_focus_ = new QCheckBox( + PreferencesBehaviorTab::BehaviorPrefTr("Enable hover focus")); hover_focus_->setToolTip(PreferencesBehaviorTab::BehaviorPrefTr( "Panels will be considered focused when the mouse cursor is over them without having to click them.")); hover_focus_->setChecked(OLIVE_CONFIG("HoverFocus").toBool()); behavior_layout->addWidget(hover_focus_); - slider_ladder_ = new QCheckBox(PreferencesBehaviorTab::BehaviorPrefTr("Enable slider ladder")); + slider_ladder_ = new QCheckBox( + PreferencesBehaviorTab::BehaviorPrefTr("Enable slider ladder")); slider_ladder_->setChecked(OLIVE_CONFIG("UseSliderLadders").toBool()); behavior_layout->addWidget(slider_ladder_); - scroll_zooms_ = new QCheckBox(PreferencesBehaviorTab::BehaviorPrefTr("Scrolling zooms by default")); + scroll_zooms_ = new QCheckBox(PreferencesBehaviorTab::BehaviorPrefTr( + "Scrolling zooms by default")); scroll_zooms_->setToolTip(PreferencesBehaviorTab::BehaviorPrefTr( "By default, scrolling will move the view around, and holding Ctrl/Cmd will make it zoom instead. " "Enabling this will switch those, scrolling will zoom by default, and holding Ctrl/Cmd will move the view instead.")); diff --git a/app/dialog/progress/CMakeLists.txt b/app/dialog/progress/CMakeLists.txt index 1319f1e56..c1c880a66 100644 --- a/app/dialog/progress/CMakeLists.txt +++ b/app/dialog/progress/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/progress/progress.h - dialog/progress/progress.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/progress/progress.h + dialog/progress/progress.cpp + PARENT_SCOPE ) diff --git a/app/dialog/projectproperties/CMakeLists.txt b/app/dialog/projectproperties/CMakeLists.txt index b45092bf6..41244e413 100644 --- a/app/dialog/projectproperties/CMakeLists.txt +++ b/app/dialog/projectproperties/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/projectproperties/projectproperties.h - dialog/projectproperties/projectproperties.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/projectproperties/projectproperties.h + dialog/projectproperties/projectproperties.cpp + PARENT_SCOPE ) diff --git a/app/dialog/rendercancel/CMakeLists.txt b/app/dialog/rendercancel/CMakeLists.txt index 16ee46ba0..7061abc1b 100644 --- a/app/dialog/rendercancel/CMakeLists.txt +++ b/app/dialog/rendercancel/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/rendercancel/rendercancel.h - dialog/rendercancel/rendercancel.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/rendercancel/rendercancel.h + dialog/rendercancel/rendercancel.cpp + PARENT_SCOPE ) diff --git a/app/dialog/sequence/CMakeLists.txt b/app/dialog/sequence/CMakeLists.txt index 1d3b4fccf..6e17090b0 100644 --- a/app/dialog/sequence/CMakeLists.txt +++ b/app/dialog/sequence/CMakeLists.txt @@ -15,14 +15,14 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/sequence/presetmanager.h - dialog/sequence/sequence.h - dialog/sequence/sequence.cpp - dialog/sequence/sequencedialogparametertab.h - dialog/sequence/sequencedialogparametertab.cpp - dialog/sequence/sequencedialogpresettab.h - dialog/sequence/sequencedialogpresettab.cpp - dialog/sequence/sequencepreset.h - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/sequence/presetmanager.h + dialog/sequence/sequence.h + dialog/sequence/sequence.cpp + dialog/sequence/sequencedialogparametertab.h + dialog/sequence/sequencedialogparametertab.cpp + dialog/sequence/sequencedialogpresettab.h + dialog/sequence/sequencedialogpresettab.cpp + dialog/sequence/sequencepreset.h + PARENT_SCOPE ) diff --git a/app/dialog/sequence/sequencedialogparametertab.cpp b/app/dialog/sequence/sequencedialogparametertab.cpp index 2adf35b7c..420a111de 100644 --- a/app/dialog/sequence/sequencedialogparametertab.cpp +++ b/app/dialog/sequence/sequencedialogparametertab.cpp @@ -23,7 +23,6 @@ #include #include - namespace olive { diff --git a/app/dialog/speedduration/CMakeLists.txt b/app/dialog/speedduration/CMakeLists.txt index 51cc60a60..4bd398613 100644 --- a/app/dialog/speedduration/CMakeLists.txt +++ b/app/dialog/speedduration/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/speedduration/speeddurationdialog.cpp - dialog/speedduration/speeddurationdialog.h - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/speedduration/speeddurationdialog.cpp + dialog/speedduration/speeddurationdialog.h + PARENT_SCOPE ) diff --git a/app/dialog/task/CMakeLists.txt b/app/dialog/task/CMakeLists.txt index 57d46bea0..123f3ffa9 100644 --- a/app/dialog/task/CMakeLists.txt +++ b/app/dialog/task/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/task/task.h - dialog/task/task.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/task/task.h + dialog/task/task.cpp + PARENT_SCOPE ) diff --git a/app/dialog/text/CMakeLists.txt b/app/dialog/text/CMakeLists.txt index 8fac97e1d..ed57e5eb9 100644 --- a/app/dialog/text/CMakeLists.txt +++ b/app/dialog/text/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - dialog/text/text.h - dialog/text/text.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + dialog/text/text.h + dialog/text/text.cpp + PARENT_SCOPE ) diff --git a/app/dialog/text/text.cpp b/app/dialog/text/text.cpp index 6130fe69f..0b3d67f9c 100644 --- a/app/dialog/text/text.cpp +++ b/app/dialog/text/text.cpp @@ -27,7 +27,6 @@ #include #include - namespace olive { diff --git a/app/main.cpp b/app/main.cpp index 4188b5359..3f7dba5d0 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -148,7 +148,6 @@ int decompress_project(const QString &project) int main(int argc, char *argv[]) { - // Set up debug handler qInstallMessageHandler(olive::DebugHandler); @@ -229,8 +228,7 @@ int main(int argc, char *argv[]) auto no_plugin = parser.AddOption( { QStringLiteral("-no-plugin") }, - QCoreApplication::translate("main", "Don't load plugins") - ); + QCoreApplication::translate("main", "Don't load plugins")); // Qt options re-implemented (add to this as necessary) // @@ -352,13 +350,13 @@ int main(int argc, char *argv[]) olive::Config::Current()[QStringLiteral("GraphicsBackend")] .toString() .toLower(); - qputenv("QSG_RHI_BACKEND", - graphics_backend == QStringLiteral("vulkan") - ? QByteArrayLiteral("vulkan") - : QByteArrayLiteral("opengl")); + qputenv("QSG_RHI_BACKEND", graphics_backend == QStringLiteral("vulkan") ? + QByteArrayLiteral("vulkan") : + QByteArrayLiteral("opengl")); if (auto *gui_app = qobject_cast(a.get())) { - gui_app->setWindowIcon(QIcon(QStringLiteral(":/graphics/oak-logo.png"))); + gui_app->setWindowIcon( + QIcon(QStringLiteral(":/graphics/oak-logo.png"))); } if (load_plugins) { diff --git a/app/node/CMakeLists.txt b/app/node/CMakeLists.txt index b1472935c..94f07b6f5 100644 --- a/app/node/CMakeLists.txt +++ b/app/node/CMakeLists.txt @@ -33,31 +33,31 @@ add_subdirectory(project) add_subdirectory(time) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/factory.cpp - node/factory.h - node/globals.cpp - node/globals.h - node/inputdragger.cpp - node/inputdragger.h - node/inputimmediate.cpp - node/inputimmediate.h - node/keyframe.cpp - node/keyframe.h - node/node.cpp - node/node.h - node/nodeundo.cpp - node/nodeundo.h - node/param.cpp - node/param.h - node/project.cpp - node/project.h - node/splitvalue.h - node/traverser.cpp - node/traverser.h - node/value.cpp - node/value.h - node/valuedatabase.cpp - node/valuedatabase.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/factory.cpp + node/factory.h + node/globals.cpp + node/globals.h + node/inputdragger.cpp + node/inputdragger.h + node/inputimmediate.cpp + node/inputimmediate.h + node/keyframe.cpp + node/keyframe.h + node/node.cpp + node/node.h + node/nodeundo.cpp + node/nodeundo.h + node/param.cpp + node/param.h + node/project.cpp + node/project.h + node/splitvalue.h + node/traverser.cpp + node/traverser.h + node/value.cpp + node/value.h + node/valuedatabase.cpp + node/valuedatabase.h + PARENT_SCOPE ) diff --git a/app/node/audio/CMakeLists.txt b/app/node/audio/CMakeLists.txt index 541fc3b20..a0e886b57 100644 --- a/app/node/audio/CMakeLists.txt +++ b/app/node/audio/CMakeLists.txt @@ -18,6 +18,6 @@ add_subdirectory(pan) add_subdirectory(volume) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/audio/pan/CMakeLists.txt b/app/node/audio/pan/CMakeLists.txt index b249404cd..12dd5cce9 100644 --- a/app/node/audio/pan/CMakeLists.txt +++ b/app/node/audio/pan/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/audio/pan/pan.h - node/audio/pan/pan.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/audio/pan/pan.h + node/audio/pan/pan.cpp + PARENT_SCOPE ) diff --git a/app/node/audio/volume/CMakeLists.txt b/app/node/audio/volume/CMakeLists.txt index 61e241f44..02f8eb768 100644 --- a/app/node/audio/volume/CMakeLists.txt +++ b/app/node/audio/volume/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/audio/volume/volume.h - node/audio/volume/volume.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/audio/volume/volume.h + node/audio/volume/volume.cpp + PARENT_SCOPE ) diff --git a/app/node/block/CMakeLists.txt b/app/node/block/CMakeLists.txt index b93497d47..14362faae 100644 --- a/app/node/block/CMakeLists.txt +++ b/app/node/block/CMakeLists.txt @@ -20,8 +20,8 @@ add_subdirectory(subtitle) add_subdirectory(transition) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/block/block.h - node/block/block.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/block/block.h + node/block/block.cpp + PARENT_SCOPE ) diff --git a/app/node/block/clip/CMakeLists.txt b/app/node/block/clip/CMakeLists.txt index 4a3a19828..820529a96 100644 --- a/app/node/block/clip/CMakeLists.txt +++ b/app/node/block/clip/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/block/clip/clip.h - node/block/clip/clip.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/block/clip/clip.h + node/block/clip/clip.cpp + PARENT_SCOPE ) diff --git a/app/node/block/gap/CMakeLists.txt b/app/node/block/gap/CMakeLists.txt index a29906a51..f24a2fb89 100644 --- a/app/node/block/gap/CMakeLists.txt +++ b/app/node/block/gap/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/block/gap/gap.h - node/block/gap/gap.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/block/gap/gap.h + node/block/gap/gap.cpp + PARENT_SCOPE ) diff --git a/app/node/block/subtitle/CMakeLists.txt b/app/node/block/subtitle/CMakeLists.txt index 29001e672..5d29ac15a 100644 --- a/app/node/block/subtitle/CMakeLists.txt +++ b/app/node/block/subtitle/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/block/subtitle/subtitle.cpp - node/block/subtitle/subtitle.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/block/subtitle/subtitle.cpp + node/block/subtitle/subtitle.h + PARENT_SCOPE ) diff --git a/app/node/block/transition/CMakeLists.txt b/app/node/block/transition/CMakeLists.txt index bb1f316a4..a1f8bfb9b 100644 --- a/app/node/block/transition/CMakeLists.txt +++ b/app/node/block/transition/CMakeLists.txt @@ -18,8 +18,8 @@ add_subdirectory(crossdissolve) add_subdirectory(diptocolor) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/block/transition/transition.h - node/block/transition/transition.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/block/transition/transition.h + node/block/transition/transition.cpp + PARENT_SCOPE ) diff --git a/app/node/block/transition/crossdissolve/CMakeLists.txt b/app/node/block/transition/crossdissolve/CMakeLists.txt index 2d8b8fc11..bb91a14b9 100644 --- a/app/node/block/transition/crossdissolve/CMakeLists.txt +++ b/app/node/block/transition/crossdissolve/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/block/transition/crossdissolve/crossdissolvetransition.h - node/block/transition/crossdissolve/crossdissolvetransition.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/block/transition/crossdissolve/crossdissolvetransition.h + node/block/transition/crossdissolve/crossdissolvetransition.cpp + PARENT_SCOPE ) diff --git a/app/node/block/transition/diptocolor/CMakeLists.txt b/app/node/block/transition/diptocolor/CMakeLists.txt index 47be688c3..d66e47ad1 100644 --- a/app/node/block/transition/diptocolor/CMakeLists.txt +++ b/app/node/block/transition/diptocolor/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/block/transition/diptocolor/diptocolortransition.h - node/block/transition/diptocolor/diptocolortransition.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/block/transition/diptocolor/diptocolortransition.h + node/block/transition/diptocolor/diptocolortransition.cpp + PARENT_SCOPE ) diff --git a/app/node/color/CMakeLists.txt b/app/node/color/CMakeLists.txt index 37975cab4..fd4eb2c85 100644 --- a/app/node/color/CMakeLists.txt +++ b/app/node/color/CMakeLists.txt @@ -22,6 +22,6 @@ add_subdirectory(ociolut) add_subdirectory(threewaycolor) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/color/colormanager/CMakeLists.txt b/app/node/color/colormanager/CMakeLists.txt index d964226d2..c379f8ea9 100644 --- a/app/node/color/colormanager/CMakeLists.txt +++ b/app/node/color/colormanager/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/color/colormanager/colormanager.cpp - node/color/colormanager/colormanager.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/color/colormanager/colormanager.cpp + node/color/colormanager/colormanager.h + PARENT_SCOPE ) diff --git a/app/node/color/displaytransform/CMakeLists.txt b/app/node/color/displaytransform/CMakeLists.txt index bec0ddfbe..3dd88deee 100644 --- a/app/node/color/displaytransform/CMakeLists.txt +++ b/app/node/color/displaytransform/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/color/displaytransform/displaytransform.cpp - node/color/displaytransform/displaytransform.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/color/displaytransform/displaytransform.cpp + node/color/displaytransform/displaytransform.h + PARENT_SCOPE ) diff --git a/app/node/color/ociobase/CMakeLists.txt b/app/node/color/ociobase/CMakeLists.txt index 86a82c6cd..5bacc8f18 100644 --- a/app/node/color/ociobase/CMakeLists.txt +++ b/app/node/color/ociobase/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/color/ociobase/ociobase.cpp - node/color/ociobase/ociobase.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/color/ociobase/ociobase.cpp + node/color/ociobase/ociobase.h + PARENT_SCOPE ) diff --git a/app/node/color/ociogradingtransformlinear/CMakeLists.txt b/app/node/color/ociogradingtransformlinear/CMakeLists.txt index 891489c63..78053df26 100644 --- a/app/node/color/ociogradingtransformlinear/CMakeLists.txt +++ b/app/node/color/ociogradingtransformlinear/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/color/ociogradingtransformlinear/ociogradingtransformlinear.cpp - node/color/ociogradingtransformlinear/ociogradingtransformlinear.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/color/ociogradingtransformlinear/ociogradingtransformlinear.cpp + node/color/ociogradingtransformlinear/ociogradingtransformlinear.h + PARENT_SCOPE ) diff --git a/app/node/color/ociolut/CMakeLists.txt b/app/node/color/ociolut/CMakeLists.txt index 55a4ae8a2..7acbf9f72 100644 --- a/app/node/color/ociolut/CMakeLists.txt +++ b/app/node/color/ociolut/CMakeLists.txt @@ -7,8 +7,8 @@ # (at your option) any later version. set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/color/ociolut/ociolut.cpp - node/color/ociolut/ociolut.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/color/ociolut/ociolut.cpp + node/color/ociolut/ociolut.h + PARENT_SCOPE ) diff --git a/app/node/color/ociolut/ociolut.cpp b/app/node/color/ociolut/ociolut.cpp index af63dd774..00a82e534 100644 --- a/app/node/color/ociolut/ociolut.cpp +++ b/app/node/color/ociolut/ociolut.cpp @@ -37,7 +37,8 @@ const QString OCIOLutNode::kDirectionInput = QStringLiteral("lut_dir_in"); #define super OCIOBaseNode -namespace { +namespace +{ bool IsSupportedLutExtension(const QString &suffix) { @@ -47,7 +48,8 @@ bool IsSupportedLutExtension(const QString &suffix) bool IsMainProcess() { - return qobject_cast(QCoreApplication::instance()) != nullptr; + return qobject_cast(QCoreApplication::instance()) != + nullptr; } int ReadDirectionInput(const Node *node) @@ -245,9 +247,8 @@ bool OCIOLutNode::CreateProcessorFromInputs() const ColorProcessorPtr processor; try { - const bool forward = - static_cast(direction) == - ColorProcessor::kNormal; + const bool forward = static_cast( + direction) == ColorProcessor::kNormal; qDebug() << "OCIOLutNode: creating processor for" << path << "direction=" << direction << "ocio_dir=" << (forward ? "FORWARD" : "INVERSE") @@ -256,10 +257,11 @@ bool OCIOLutNode::CreateProcessorFromInputs() const OCIO::FileTransformRcPtr transform = OCIO::FileTransform::Create(); transform->setSrc(path.toUtf8().constData()); transform->setInterpolation(OCIO::INTERP_LINEAR); - transform->setDirection( - forward ? OCIO::TRANSFORM_DIR_FORWARD : OCIO::TRANSFORM_DIR_INVERSE); + transform->setDirection(forward ? OCIO::TRANSFORM_DIR_FORWARD : + OCIO::TRANSFORM_DIR_INVERSE); - processor = ColorProcessor::Create(manager()->GetConfig()->getProcessor(transform)); + processor = ColorProcessor::Create( + manager()->GetConfig()->getProcessor(transform)); } catch (const std::exception &e) { qWarning() << "OCIO LUT processor error:" << e.what(); processor = nullptr; diff --git a/app/node/color/ociolut/ociolut.h b/app/node/color/ociolut/ociolut.h index e0d60f369..a775fe9ee 100644 --- a/app/node/color/ociolut/ociolut.h +++ b/app/node/color/ociolut/ociolut.h @@ -43,7 +43,7 @@ public: virtual void Retranslate() override; virtual void InputValueChangedEvent(const QString &input, - int element) override; + int element) override; virtual void Value(const NodeValueRow &value, const NodeGlobals &globals, NodeValueTable *table) const override; diff --git a/app/node/color/threewaycolor/CMakeLists.txt b/app/node/color/threewaycolor/CMakeLists.txt index ee2ba14a2..f6307f6b2 100644 --- a/app/node/color/threewaycolor/CMakeLists.txt +++ b/app/node/color/threewaycolor/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/color/threewaycolor/threewaycolor.h - node/color/threewaycolor/threewaycolor.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/color/threewaycolor/threewaycolor.h + node/color/threewaycolor/threewaycolor.cpp + PARENT_SCOPE ) diff --git a/app/node/color/threewaycolor/threewaycolor.cpp b/app/node/color/threewaycolor/threewaycolor.cpp index 3b03df09d..676ddae18 100644 --- a/app/node/color/threewaycolor/threewaycolor.cpp +++ b/app/node/color/threewaycolor/threewaycolor.cpp @@ -87,8 +87,7 @@ void ThreeWayColorNode::Retranslate() SetInputName(kHighlightsAmountInput, tr("Highlights Amount")); } -ShaderCode -ThreeWayColorNode::GetShaderCode(const ShaderRequest &request) const +ShaderCode ThreeWayColorNode::GetShaderCode(const ShaderRequest &request) const { Q_UNUSED(request) return ShaderCode( diff --git a/app/node/distort/CMakeLists.txt b/app/node/distort/CMakeLists.txt index 2feb4ee34..f71d65b8d 100644 --- a/app/node/distort/CMakeLists.txt +++ b/app/node/distort/CMakeLists.txt @@ -25,6 +25,6 @@ add_subdirectory(transform) add_subdirectory(wave) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/distort/cornerpin/CMakeLists.txt b/app/node/distort/cornerpin/CMakeLists.txt index 7dd1b44e0..103b2f427 100644 --- a/app/node/distort/cornerpin/CMakeLists.txt +++ b/app/node/distort/cornerpin/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/cornerpin/cornerpindistortnode.cpp - node/distort/cornerpin/cornerpindistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/cornerpin/cornerpindistortnode.cpp + node/distort/cornerpin/cornerpindistortnode.h + PARENT_SCOPE ) diff --git a/app/node/distort/crop/CMakeLists.txt b/app/node/distort/crop/CMakeLists.txt index b882ad539..ad1ff7335 100644 --- a/app/node/distort/crop/CMakeLists.txt +++ b/app/node/distort/crop/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/crop/cropdistortnode.cpp - node/distort/crop/cropdistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/crop/cropdistortnode.cpp + node/distort/crop/cropdistortnode.h + PARENT_SCOPE ) diff --git a/app/node/distort/flip/CMakeLists.txt b/app/node/distort/flip/CMakeLists.txt index 414f46fec..49b77008a 100644 --- a/app/node/distort/flip/CMakeLists.txt +++ b/app/node/distort/flip/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/flip/flipdistortnode.cpp - node/distort/flip/flipdistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/flip/flipdistortnode.cpp + node/distort/flip/flipdistortnode.h + PARENT_SCOPE ) diff --git a/app/node/distort/mask/CMakeLists.txt b/app/node/distort/mask/CMakeLists.txt index ac4b0d89e..8d980848d 100644 --- a/app/node/distort/mask/CMakeLists.txt +++ b/app/node/distort/mask/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/mask/mask.cpp - node/distort/mask/mask.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/mask/mask.cpp + node/distort/mask/mask.h + PARENT_SCOPE ) diff --git a/app/node/distort/ripple/CMakeLists.txt b/app/node/distort/ripple/CMakeLists.txt index 1860986c6..a8cd1168d 100644 --- a/app/node/distort/ripple/CMakeLists.txt +++ b/app/node/distort/ripple/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/ripple/rippledistortnode.cpp - node/distort/ripple/rippledistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/ripple/rippledistortnode.cpp + node/distort/ripple/rippledistortnode.h + PARENT_SCOPE ) diff --git a/app/node/distort/swirl/CMakeLists.txt b/app/node/distort/swirl/CMakeLists.txt index e41d599c4..bb2b20ba5 100644 --- a/app/node/distort/swirl/CMakeLists.txt +++ b/app/node/distort/swirl/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/swirl/swirldistortnode.cpp - node/distort/swirl/swirldistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/swirl/swirldistortnode.cpp + node/distort/swirl/swirldistortnode.h + PARENT_SCOPE ) diff --git a/app/node/distort/tile/CMakeLists.txt b/app/node/distort/tile/CMakeLists.txt index c2f83cbf6..97a280baa 100644 --- a/app/node/distort/tile/CMakeLists.txt +++ b/app/node/distort/tile/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/tile/tiledistortnode.cpp - node/distort/tile/tiledistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/tile/tiledistortnode.cpp + node/distort/tile/tiledistortnode.h + PARENT_SCOPE ) diff --git a/app/node/distort/transform/CMakeLists.txt b/app/node/distort/transform/CMakeLists.txt index 63a97c6c2..584116767 100644 --- a/app/node/distort/transform/CMakeLists.txt +++ b/app/node/distort/transform/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/transform/transformdistortnode.cpp - node/distort/transform/transformdistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/transform/transformdistortnode.cpp + node/distort/transform/transformdistortnode.h + PARENT_SCOPE ) diff --git a/app/node/distort/wave/CMakeLists.txt b/app/node/distort/wave/CMakeLists.txt index 5cf818d4c..7e3720914 100644 --- a/app/node/distort/wave/CMakeLists.txt +++ b/app/node/distort/wave/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/distort/wave/wavedistortnode.cpp - node/distort/wave/wavedistortnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/distort/wave/wavedistortnode.cpp + node/distort/wave/wavedistortnode.h + PARENT_SCOPE ) diff --git a/app/node/effect/CMakeLists.txt b/app/node/effect/CMakeLists.txt index 690dd76a5..4753fb991 100644 --- a/app/node/effect/CMakeLists.txt +++ b/app/node/effect/CMakeLists.txt @@ -17,6 +17,6 @@ add_subdirectory(opacity) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/effect/opacity/CMakeLists.txt b/app/node/effect/opacity/CMakeLists.txt index 4aac69730..7d27380f9 100644 --- a/app/node/effect/opacity/CMakeLists.txt +++ b/app/node/effect/opacity/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/effect/opacity/opacityeffect.cpp - node/effect/opacity/opacityeffect.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/effect/opacity/opacityeffect.cpp + node/effect/opacity/opacityeffect.h + PARENT_SCOPE ) diff --git a/app/node/factory.cpp b/app/node/factory.cpp index cef0be9ab..0cd4c5caa 100644 --- a/app/node/factory.cpp +++ b/app/node/factory.cpp @@ -94,7 +94,6 @@ void NodeFactory::Initialize() } RegisterPluginNodes(); - } void NodeFactory::Destroy() @@ -151,8 +150,7 @@ Menu *NodeFactory::CreateMenu(QWidget *parent, bool create_none_item, // Determine final destination (support secondary grouping) Menu *destination = top_menu; QString sub = n->SubCategory(); - if (!sub.isEmpty() && - n->Category().contains(Node::kCategoryOpenFX)) { + if (!sub.isEmpty() && n->Category().contains(Node::kCategoryOpenFX)) { QList sub_actions = top_menu->actions(); foreach (QAction *action, sub_actions) { if (action->menu() && action->menu()->title() == sub) { @@ -249,16 +247,15 @@ void NodeFactory::RegisterPluginNodes() continue; } - const QString plugin_id = QString::fromStdString( - image_effect->getIdentifier()); + const QString plugin_id = + QString::fromStdString(image_effect->getIdentifier()); if (existing_ids.contains(plugin_id)) { continue; } const auto &contexts = image_effect->getContexts(); if (contexts.empty()) { - qWarning() << "Skipping OFX plugin with no contexts:" - << plugin_id; + qWarning() << "Skipping OFX plugin with no contexts:" << plugin_id; continue; } std::string context = kOfxImageEffectContextFilter; diff --git a/app/node/filter/CMakeLists.txt b/app/node/filter/CMakeLists.txt index ea93d9320..512a56b3b 100644 --- a/app/node/filter/CMakeLists.txt +++ b/app/node/filter/CMakeLists.txt @@ -20,6 +20,6 @@ add_subdirectory(mosaic) add_subdirectory(stroke) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/filter/blur/CMakeLists.txt b/app/node/filter/blur/CMakeLists.txt index 40c6695f3..b38acb0e1 100644 --- a/app/node/filter/blur/CMakeLists.txt +++ b/app/node/filter/blur/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/filter/blur/blur.h - node/filter/blur/blur.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/filter/blur/blur.h + node/filter/blur/blur.cpp + PARENT_SCOPE ) diff --git a/app/node/filter/dropshadow/CMakeLists.txt b/app/node/filter/dropshadow/CMakeLists.txt index e86f4b95f..6ed873067 100644 --- a/app/node/filter/dropshadow/CMakeLists.txt +++ b/app/node/filter/dropshadow/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/filter/dropshadow/dropshadowfilter.h - node/filter/dropshadow/dropshadowfilter.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/filter/dropshadow/dropshadowfilter.h + node/filter/dropshadow/dropshadowfilter.cpp + PARENT_SCOPE ) diff --git a/app/node/filter/mosaic/CMakeLists.txt b/app/node/filter/mosaic/CMakeLists.txt index 07a502395..9388b6bf8 100644 --- a/app/node/filter/mosaic/CMakeLists.txt +++ b/app/node/filter/mosaic/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/filter/mosaic/mosaicfilternode.h - node/filter/mosaic/mosaicfilternode.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/filter/mosaic/mosaicfilternode.h + node/filter/mosaic/mosaicfilternode.cpp + PARENT_SCOPE ) diff --git a/app/node/filter/stroke/CMakeLists.txt b/app/node/filter/stroke/CMakeLists.txt index 71bb7c94f..8117b28d7 100644 --- a/app/node/filter/stroke/CMakeLists.txt +++ b/app/node/filter/stroke/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/filter/stroke/stroke.h - node/filter/stroke/stroke.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/filter/stroke/stroke.h + node/filter/stroke/stroke.cpp + PARENT_SCOPE ) diff --git a/app/node/generator/CMakeLists.txt b/app/node/generator/CMakeLists.txt index 424c3a0d4..bd854bba4 100644 --- a/app/node/generator/CMakeLists.txt +++ b/app/node/generator/CMakeLists.txt @@ -22,6 +22,6 @@ add_subdirectory(solid) add_subdirectory(text) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/generator/matrix/CMakeLists.txt b/app/node/generator/matrix/CMakeLists.txt index 142fdade9..48d917e90 100644 --- a/app/node/generator/matrix/CMakeLists.txt +++ b/app/node/generator/matrix/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/generator/matrix/matrix.h - node/generator/matrix/matrix.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/generator/matrix/matrix.h + node/generator/matrix/matrix.cpp + PARENT_SCOPE ) diff --git a/app/node/generator/noise/CMakeLists.txt b/app/node/generator/noise/CMakeLists.txt index 2c74d0d1c..592f05579 100644 --- a/app/node/generator/noise/CMakeLists.txt +++ b/app/node/generator/noise/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/generator/noise/noise.h - node/generator/noise/noise.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/generator/noise/noise.h + node/generator/noise/noise.cpp + PARENT_SCOPE ) diff --git a/app/node/generator/polygon/CMakeLists.txt b/app/node/generator/polygon/CMakeLists.txt index 79660d493..8b478b0e0 100644 --- a/app/node/generator/polygon/CMakeLists.txt +++ b/app/node/generator/polygon/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/generator/polygon/polygon.h - node/generator/polygon/polygon.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/generator/polygon/polygon.h + node/generator/polygon/polygon.cpp + PARENT_SCOPE ) diff --git a/app/node/generator/shape/CMakeLists.txt b/app/node/generator/shape/CMakeLists.txt index 436a49583..78d4c34ab 100644 --- a/app/node/generator/shape/CMakeLists.txt +++ b/app/node/generator/shape/CMakeLists.txt @@ -15,12 +15,12 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/generator/shape/generatorwithmerge.cpp - node/generator/shape/generatorwithmerge.h - node/generator/shape/shapenode.cpp - node/generator/shape/shapenode.h - node/generator/shape/shapenodebase.cpp - node/generator/shape/shapenodebase.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/generator/shape/generatorwithmerge.cpp + node/generator/shape/generatorwithmerge.h + node/generator/shape/shapenode.cpp + node/generator/shape/shapenode.h + node/generator/shape/shapenodebase.cpp + node/generator/shape/shapenodebase.h + PARENT_SCOPE ) diff --git a/app/node/generator/solid/CMakeLists.txt b/app/node/generator/solid/CMakeLists.txt index a194c709a..342e9c824 100644 --- a/app/node/generator/solid/CMakeLists.txt +++ b/app/node/generator/solid/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/generator/solid/solid.h - node/generator/solid/solid.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/generator/solid/solid.h + node/generator/solid/solid.cpp + PARENT_SCOPE ) diff --git a/app/node/generator/text/CMakeLists.txt b/app/node/generator/text/CMakeLists.txt index 3c03d99a1..516b545fe 100644 --- a/app/node/generator/text/CMakeLists.txt +++ b/app/node/generator/text/CMakeLists.txt @@ -15,12 +15,12 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/generator/text/textv1.cpp - node/generator/text/textv1.h - node/generator/text/textv2.cpp - node/generator/text/textv2.h - node/generator/text/textv3.cpp - node/generator/text/textv3.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/generator/text/textv1.cpp + node/generator/text/textv1.h + node/generator/text/textv2.cpp + node/generator/text/textv2.h + node/generator/text/textv3.cpp + node/generator/text/textv3.h + PARENT_SCOPE ) diff --git a/app/node/gizmo/CMakeLists.txt b/app/node/gizmo/CMakeLists.txt index c9f530d22..8c9b6aa75 100644 --- a/app/node/gizmo/CMakeLists.txt +++ b/app/node/gizmo/CMakeLists.txt @@ -15,22 +15,22 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/gizmo/draggable.cpp - node/gizmo/draggable.h - node/gizmo/gizmo.cpp - node/gizmo/gizmo.h - node/gizmo/line.cpp - node/gizmo/line.h - node/gizmo/path.cpp - node/gizmo/path.h - node/gizmo/point.cpp - node/gizmo/point.h - node/gizmo/polygon.cpp - node/gizmo/polygon.h - node/gizmo/screen.cpp - node/gizmo/screen.h - node/gizmo/text.cpp - node/gizmo/text.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/gizmo/draggable.cpp + node/gizmo/draggable.h + node/gizmo/gizmo.cpp + node/gizmo/gizmo.h + node/gizmo/line.cpp + node/gizmo/line.h + node/gizmo/path.cpp + node/gizmo/path.h + node/gizmo/point.cpp + node/gizmo/point.h + node/gizmo/polygon.cpp + node/gizmo/polygon.h + node/gizmo/screen.cpp + node/gizmo/screen.h + node/gizmo/text.cpp + node/gizmo/text.h + PARENT_SCOPE ) diff --git a/app/node/group/CMakeLists.txt b/app/node/group/CMakeLists.txt index de08d74da..9eebaf064 100644 --- a/app/node/group/CMakeLists.txt +++ b/app/node/group/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/group/group.cpp - node/group/group.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/group/group.cpp + node/group/group.h + PARENT_SCOPE ) diff --git a/app/node/input/CMakeLists.txt b/app/node/input/CMakeLists.txt index ab2b3569e..28d4d34c8 100644 --- a/app/node/input/CMakeLists.txt +++ b/app/node/input/CMakeLists.txt @@ -19,6 +19,6 @@ add_subdirectory(time) add_subdirectory(value) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/input/multicam/CMakeLists.txt b/app/node/input/multicam/CMakeLists.txt index fca12be16..a8fe63ad4 100644 --- a/app/node/input/multicam/CMakeLists.txt +++ b/app/node/input/multicam/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/input/multicam/multicamnode.h - node/input/multicam/multicamnode.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/input/multicam/multicamnode.h + node/input/multicam/multicamnode.cpp + PARENT_SCOPE ) diff --git a/app/node/input/time/CMakeLists.txt b/app/node/input/time/CMakeLists.txt index de26aba60..dcc559e66 100644 --- a/app/node/input/time/CMakeLists.txt +++ b/app/node/input/time/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/input/time/timeinput.h - node/input/time/timeinput.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/input/time/timeinput.h + node/input/time/timeinput.cpp + PARENT_SCOPE ) diff --git a/app/node/input/value/CMakeLists.txt b/app/node/input/value/CMakeLists.txt index cab50a98e..16cdc21ca 100644 --- a/app/node/input/value/CMakeLists.txt +++ b/app/node/input/value/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/input/value/valuenode.h - node/input/value/valuenode.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/input/value/valuenode.h + node/input/value/valuenode.cpp + PARENT_SCOPE ) diff --git a/app/node/keying/CMakeLists.txt b/app/node/keying/CMakeLists.txt index 1aa9910f4..dfb8f2fda 100644 --- a/app/node/keying/CMakeLists.txt +++ b/app/node/keying/CMakeLists.txt @@ -19,6 +19,6 @@ add_subdirectory(colordifferencekey) add_subdirectory(despill) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/keying/chromakey/CMakeLists.txt b/app/node/keying/chromakey/CMakeLists.txt index e7a9023dc..6107bd105 100644 --- a/app/node/keying/chromakey/CMakeLists.txt +++ b/app/node/keying/chromakey/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/keying/chromakey/chromakey.h - node/keying/chromakey/chromakey.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/keying/chromakey/chromakey.h + node/keying/chromakey/chromakey.cpp + PARENT_SCOPE ) \ No newline at end of file diff --git a/app/node/keying/colordifferencekey/CMakeLists.txt b/app/node/keying/colordifferencekey/CMakeLists.txt index f85438dc9..0e2e48980 100644 --- a/app/node/keying/colordifferencekey/CMakeLists.txt +++ b/app/node/keying/colordifferencekey/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/keying/colordifferencekey/colordifferencekey.h - node/keying/colordifferencekey/colordifferencekey.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/keying/colordifferencekey/colordifferencekey.h + node/keying/colordifferencekey/colordifferencekey.cpp + PARENT_SCOPE ) diff --git a/app/node/keying/despill/CMakeLists.txt b/app/node/keying/despill/CMakeLists.txt index 5f7c01639..69141556b 100644 --- a/app/node/keying/despill/CMakeLists.txt +++ b/app/node/keying/despill/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/keying/despill/despill.h - node/keying/despill/despill.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/keying/despill/despill.h + node/keying/despill/despill.cpp + PARENT_SCOPE ) diff --git a/app/node/math/CMakeLists.txt b/app/node/math/CMakeLists.txt index e9afde04c..9018df4d3 100644 --- a/app/node/math/CMakeLists.txt +++ b/app/node/math/CMakeLists.txt @@ -19,6 +19,6 @@ add_subdirectory(merge) add_subdirectory(trigonometry) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/math/math/CMakeLists.txt b/app/node/math/math/CMakeLists.txt index 8837a6e9d..92981e05e 100644 --- a/app/node/math/math/CMakeLists.txt +++ b/app/node/math/math/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/math/math/math.h - node/math/math/math.cpp - node/math/math/mathbase.h - node/math/math/mathbase.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/math/math/math.h + node/math/math/math.cpp + node/math/math/mathbase.h + node/math/math/mathbase.cpp + PARENT_SCOPE ) diff --git a/app/node/math/merge/CMakeLists.txt b/app/node/math/merge/CMakeLists.txt index d20bad99d..90705b220 100644 --- a/app/node/math/merge/CMakeLists.txt +++ b/app/node/math/merge/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/math/merge/merge.h - node/math/merge/merge.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/math/merge/merge.h + node/math/merge/merge.cpp + PARENT_SCOPE ) diff --git a/app/node/math/trigonometry/CMakeLists.txt b/app/node/math/trigonometry/CMakeLists.txt index e3b12573d..0d1102046 100644 --- a/app/node/math/trigonometry/CMakeLists.txt +++ b/app/node/math/trigonometry/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/math/trigonometry/trigonometry.h - node/math/trigonometry/trigonometry.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/math/trigonometry/trigonometry.h + node/math/trigonometry/trigonometry.cpp + PARENT_SCOPE ) diff --git a/app/node/node.h b/app/node/node.h index c8a2cdd48..1d8563a3d 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -182,7 +182,10 @@ public: * @brief Return a sub-category string for secondary grouping * within the primary category (e.g. "Filter" under "OpenFX"). */ - virtual QString SubCategory() const { return QString(); } + virtual QString SubCategory() const + { + return QString(); + } /** * @brief Return a description of this node's purpose (optional for subclassing, but recommended) @@ -1136,20 +1139,20 @@ public: static const QString kEnabledInput; - OFX::Host::ImageEffect::Instance* getPluginInstance() const + OFX::Host::ImageEffect::Instance *getPluginInstance() const { return plugin_instance_; } - OFX::Host::ImageEffect::ImageEffectPlugin* getPlugin() const + OFX::Host::ImageEffect::ImageEffectPlugin *getPlugin() const { return plugin_instance_ ? plugin_instance_->getPlugin() : nullptr; } + protected: - // If set, this node owns a plugin instance. - OFX::Host::ImageEffect::Instance* plugin_instance_ = nullptr; + OFX::Host::ImageEffect::Instance *plugin_instance_ = nullptr; - void setPluginInstance(OFX::Host::ImageEffect::Instance* instance) + void setPluginInstance(OFX::Host::ImageEffect::Instance *instance) { plugin_instance_ = instance; } diff --git a/app/node/output/CMakeLists.txt b/app/node/output/CMakeLists.txt index ae9e63c14..1ab4baca6 100644 --- a/app/node/output/CMakeLists.txt +++ b/app/node/output/CMakeLists.txt @@ -18,6 +18,6 @@ add_subdirectory(track) add_subdirectory(viewer) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/output/track/CMakeLists.txt b/app/node/output/track/CMakeLists.txt index a0b2b6e21..a7ff78d00 100644 --- a/app/node/output/track/CMakeLists.txt +++ b/app/node/output/track/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/output/track/track.cpp - node/output/track/track.h - node/output/track/tracklist.cpp - node/output/track/tracklist.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/output/track/track.cpp + node/output/track/track.h + node/output/track/tracklist.cpp + node/output/track/tracklist.h + PARENT_SCOPE ) diff --git a/app/node/output/viewer/CMakeLists.txt b/app/node/output/viewer/CMakeLists.txt index d77898838..876634308 100644 --- a/app/node/output/viewer/CMakeLists.txt +++ b/app/node/output/viewer/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/output/viewer/viewer.h - node/output/viewer/viewer.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/output/viewer/viewer.h + node/output/viewer/viewer.cpp + PARENT_SCOPE ) diff --git a/app/node/output/viewer/viewer.cpp b/app/node/output/viewer/viewer.cpp index 91e5a394a..1041df493 100644 --- a/app/node/output/viewer/viewer.cpp +++ b/app/node/output/viewer/viewer.cpp @@ -581,12 +581,12 @@ void ViewerOutput::set_parameters_from_footage( found_video_params = true; } - SetVideoParams(VideoParams( - s.width(), s.height(), using_timebase, - static_cast( - OLIVE_CONFIG("OfflinePixelFormat").toInt()), - VideoParams::kInternalChannelCount, s.pixel_aspect_ratio(), - s.interlacing(), 1)); + SetVideoParams( + VideoParams(s.width(), s.height(), using_timebase, + static_cast( + OLIVE_CONFIG("OfflinePixelFormat").toInt()), + VideoParams::kInternalChannelCount, + s.pixel_aspect_ratio(), s.interlacing(), 1)); if (found_video_params) { break; diff --git a/app/node/plugins/Plugin.cpp b/app/node/plugins/Plugin.cpp index cb4c5eed0..b2e4dd319 100644 --- a/app/node/plugins/Plugin.cpp +++ b/app/node/plugins/Plugin.cpp @@ -32,7 +32,8 @@ #include #include -namespace { +namespace +{ QHash> g_plugin_param_defaults; static bool IsNormalisedCoordSystem(const OFX::Host::Param::Base *param) @@ -61,8 +62,7 @@ QVariant DefaultValueForParam(const OFX::Host::Param::Base *param) const std::string &ofxType = param->getType(); const auto &props = param->getProperties(); - if (ofxType == kOfxParamTypeInteger || - ofxType == kOfxParamTypeChoice) { + if (ofxType == kOfxParamTypeInteger || ofxType == kOfxParamTypeChoice) { return props.getIntProperty(kOfxParamPropDefault); } if (ofxType == kOfxParamTypeBoolean) { @@ -77,34 +77,30 @@ QVariant DefaultValueForParam(const OFX::Host::Param::Base *param) } return val; } - if (ofxType == kOfxParamTypeString || - ofxType == kOfxParamTypeStrChoice || + if (ofxType == kOfxParamTypeString || ofxType == kOfxParamTypeStrChoice || ofxType == kOfxParamTypeCustom) { return QString::fromStdString( props.getStringProperty(kOfxParamPropDefault)); } - if (ofxType == kOfxParamTypeRGB || - ofxType == kOfxParamTypeRGBA) { + if (ofxType == kOfxParamTypeRGB || ofxType == kOfxParamTypeRGBA) { const int count = (ofxType == kOfxParamTypeRGBA) ? 4 : 3; - double values[4] = {0.0, 0.0, 0.0, 1.0}; + double values[4] = { 0.0, 0.0, 0.0, 1.0 }; props.getDoublePropertyN(kOfxParamPropDefault, values, count); const double alpha = (count == 4) ? values[3] : 1.0; return QVariant::fromValue( olive::core::Color(values[0], values[1], values[2], alpha)); } - if (ofxType == kOfxParamTypeDouble2D || - ofxType == kOfxParamTypeDouble3D || + if (ofxType == kOfxParamTypeDouble2D || ofxType == kOfxParamTypeDouble3D || ofxType == kOfxParamTypeInteger2D || ofxType == kOfxParamTypeInteger3D) { - const bool is_double = - (ofxType == kOfxParamTypeDouble2D || - ofxType == kOfxParamTypeDouble3D); + const bool is_double = (ofxType == kOfxParamTypeDouble2D || + ofxType == kOfxParamTypeDouble3D); const int count = (ofxType == kOfxParamTypeDouble2D || - ofxType == kOfxParamTypeInteger2D) - ? 2 - : 3; + ofxType == kOfxParamTypeInteger2D) ? + 2 : + 3; if (is_double) { - double values[3] = {0.0, 0.0, 0.0}; + double values[3] = { 0.0, 0.0, 0.0 }; props.getDoublePropertyN(kOfxParamPropDefault, values, count); if (IsNormalisedCoordSystem(param)) { double xSize, ySize; @@ -120,7 +116,7 @@ QVariant DefaultValueForParam(const OFX::Host::Param::Base *param) } return QVector3D(values[0], values[1], values[2]); } - int values[3] = {0, 0, 0}; + int values[3] = { 0, 0, 0 }; props.getIntPropertyN(kOfxParamPropDefault, values, count); if (count == 2) { return QVector2D(values[0], values[1]); @@ -156,8 +152,7 @@ QString DeduceColorSemantic(const OFX::Host::Param::Base *param, // Rule 1: explicit color keywords → color static const QStringList kColorKeywords = { QStringLiteral("color"), QStringLiteral("colour"), - QStringLiteral("fill"), QStringLiteral("tint"), - QStringLiteral("key") + QStringLiteral("fill"), QStringLiteral("tint"), QStringLiteral("key") }; for (const QString &kw : kColorKeywords) { if (label.contains(kw) || hint.contains(kw) || name.contains(kw)) { @@ -167,11 +162,11 @@ QString DeduceColorSemantic(const OFX::Host::Param::Base *param, // Rule 2: explicit scalar/adjustment keywords → scalar static const QStringList kScalarKeywords = { - QStringLiteral("gamma"), QStringLiteral("contrast"), - QStringLiteral("gain"), QStringLiteral("offset"), + QStringLiteral("gamma"), QStringLiteral("contrast"), + QStringLiteral("gain"), QStringLiteral("offset"), QStringLiteral("saturation"), QStringLiteral("exposure"), QStringLiteral("brightness"), QStringLiteral("lift"), - QStringLiteral("multiply"), QStringLiteral("scale"), + QStringLiteral("multiply"), QStringLiteral("scale"), QStringLiteral("pivot") }; for (const QString &kw : kScalarKeywords) { @@ -183,8 +178,8 @@ QString DeduceColorSemantic(const OFX::Host::Param::Base *param, // Rule 3: display range significantly outside/asymmetric to [0,1] → scalar const auto &props = param->getProperties(); const int dim = (ofxType == kOfxParamTypeRGBA) ? 4 : 3; - double dmin[4] = {0, 0, 0, 0}; - double dmax[4] = {1, 1, 1, 1}; + double dmin[4] = { 0, 0, 0, 0 }; + double dmax[4] = { 1, 1, 1, 1 }; props.getDoublePropertyN(kOfxParamPropDisplayMin, dmin, dim); props.getDoublePropertyN(kOfxParamPropDisplayMax, dmax, dim); bool range_looks_scalar = false; @@ -199,7 +194,7 @@ QString DeduceColorSemantic(const OFX::Host::Param::Base *param, } // Rule 4: default values all equal → scalar (lean) - double defs[4] = {0, 0, 0, 1}; + double defs[4] = { 0, 0, 0, 1 }; props.getDoublePropertyN(kOfxParamPropDefault, defs, dim); bool all_equal = true; for (int i = 1; i < dim; ++i) { @@ -227,14 +222,13 @@ QString DeduceColorSemantic(const OFX::Host::Param::Base *param, return QStringLiteral("color"); } -QHash -BuildDefaultValues(const std::map ¶ms) +QHash BuildDefaultValues( + const std::map ¶ms) { QHash defaults; for (const auto ¶m : params) { const std::string &ofxType = param.second->getType(); - if (ofxType == kOfxParamTypeGroup || - ofxType == kOfxParamTypePage || + if (ofxType == kOfxParamTypeGroup || ofxType == kOfxParamTypePage || ofxType == kOfxParamTypePushButton) { continue; } @@ -254,8 +248,9 @@ BuildDefaultValues(const std::map &pa return defaults; } } -static QString ClipLabelForName(const std::string &name, - const OFX::Host::ImageEffect::ClipDescriptor *desc) +static QString +ClipLabelForName(const std::string &name, + const OFX::Host::ImageEffect::ClipDescriptor *desc) { if (name == kOfxImageEffectSimpleSourceClipName) { return olive::plugin::PluginNode::tr("Source"); @@ -278,10 +273,9 @@ static QString ClipLabelForName(const std::string &name, return QString::fromStdString(name); } -olive::plugin::PluginNode::PluginNode( - OFX::Host::ImageEffect::Instance *plugin) +olive::plugin::PluginNode::PluginNode(OFX::Host::ImageEffect::Instance *plugin) { - plugin_instance_=plugin; + plugin_instance_ = plugin; const std::string &ctx = plugin_instance_->getContext(); if (ctx == kOfxImageEffectContextFilter) { @@ -299,16 +293,16 @@ olive::plugin::PluginNode::PluginNode( QHash page_labels; QHash page_for_param; - auto params=plugin_instance_->getParams(); - const QString plugin_id = QString::fromStdString( - plugin_instance_->getPlugin()->getIdentifier()); + auto params = plugin_instance_->getParams(); + const QString plugin_id = + QString::fromStdString(plugin_instance_->getPlugin()->getIdentifier()); auto defaults_iter = g_plugin_param_defaults.find(plugin_id); if (defaults_iter == g_plugin_param_defaults.end()) { g_plugin_param_defaults.insert(plugin_id, BuildDefaultValues(params)); defaults_iter = g_plugin_param_defaults.find(plugin_id); } const QHash &defaults = defaults_iter.value(); - for (auto param: params) { + for (auto param : params) { const std::string &ofxType = param.second->getType(); if (ofxType == kOfxParamTypeGroup) { const QString name = QString::fromStdString(param.first); @@ -336,8 +330,7 @@ olive::plugin::PluginNode::PluginNode( } } - for (auto param: params) { - + for (auto param : params) { NodeValue::Type type = NodeValue::kNone; const std::string &ofxType = param.second->getType(); @@ -355,26 +348,27 @@ olive::plugin::PluginNode::PluginNode( } else if (ofxType == kOfxParamTypeChoice) { type = NodeValue::kCombo; } else if (ofxType == kOfxParamTypeDouble2D || - ofxType == kOfxParamTypeInteger2D){ - type = NodeValue::kVec2;} - else if (ofxType == kOfxParamTypeDouble3D || - ofxType == kOfxParamTypeInteger3D){ + ofxType == kOfxParamTypeInteger2D) { + type = NodeValue::kVec2; + } else if (ofxType == kOfxParamTypeDouble3D || + ofxType == kOfxParamTypeInteger3D) { type = NodeValue::kVec3; - } else if (ofxType == kOfxParamTypeStrChoice){ + } else if (ofxType == kOfxParamTypeStrChoice) { type = NodeValue::kStrCombo; - }else if (ofxType == kOfxParamTypeBytes - || ofxType == kOfxParamTypeCustom) { + } else if (ofxType == kOfxParamTypeBytes || + ofxType == kOfxParamTypeCustom) { type = NodeValue::kBinary; } else if (ofxType == kOfxParamTypePushButton) { type = NodeValue::kPushButton; } else if (ofxType == kOfxParamTypeGroup || ofxType == kOfxParamTypePage) { continue; - }else { + } else { type = NodeValue::kNone; } - const QString input_id = QString::fromStdString(param.second->getName()); + const QString input_id = + QString::fromStdString(param.second->getName()); if (input_id.isEmpty()) { continue; } @@ -395,8 +389,7 @@ olive::plugin::PluginNode::PluginNode( if (is_secret) { SetInputFlag(input_id, kInputFlagHidden); } - const QString label = - QString::fromStdString(param.second->getLabel()); + const QString label = QString::fromStdString(param.second->getLabel()); if (!label.isEmpty()) { SetInputName(input_id, label); } else { @@ -413,33 +406,22 @@ olive::plugin::PluginNode::PluginNode( page_for_param.value(input_id)); } if (type == NodeValue::kColor) { - QString semantic = - DeduceColorSemantic(param.second, group_labels); - SetInputProperty(input_id, - QStringLiteral("color_semantic"), + QString semantic = DeduceColorSemantic(param.second, group_labels); + SetInputProperty(input_id, QStringLiteral("color_semantic"), semantic); - const int dim = - (ofxType == kOfxParamTypeRGBA) ? 4 : 3; - double dmin[4] = {0, 0, 0, 0}; - double dmax[4] = {1, 1, 1, 1}; - props.getDoublePropertyN(kOfxParamPropDisplayMin, - dmin, dim); - props.getDoublePropertyN(kOfxParamPropDisplayMax, - dmax, dim); - SetInputProperty(input_id, - QStringLiteral("min"), - dmin[0]); - SetInputProperty(input_id, - QStringLiteral("max"), - dmax[0]); + const int dim = (ofxType == kOfxParamTypeRGBA) ? 4 : 3; + double dmin[4] = { 0, 0, 0, 0 }; + double dmax[4] = { 1, 1, 1, 1 }; + props.getDoublePropertyN(kOfxParamPropDisplayMin, dmin, dim); + props.getDoublePropertyN(kOfxParamPropDisplayMax, dmax, dim); + SetInputProperty(input_id, QStringLiteral("min"), dmin[0]); + SetInputProperty(input_id, QStringLiteral("max"), dmax[0]); - const QString hint = QString::fromStdString( - param.second->getHint()); + const QString hint = + QString::fromStdString(param.second->getHint()); if (!hint.isEmpty()) { - SetInputProperty(input_id, - QStringLiteral("tooltip"), - hint); + SetInputProperty(input_id, QStringLiteral("tooltip"), hint); } } if (type == NodeValue::kCombo || type == NodeValue::kStrCombo) { @@ -447,8 +429,7 @@ olive::plugin::PluginNode::PluginNode( QStringList option_values; const int label_count = props.getDimension(kOfxParamPropChoiceOption); - const int value_count = - props.getDimension(kOfxParamPropChoiceEnum); + const int value_count = props.getDimension(kOfxParamPropChoiceEnum); for (int i = 0; i < label_count; ++i) { const std::string &label = @@ -478,15 +459,13 @@ olive::plugin::PluginNode::PluginNode( indices[i] = i; } - std::stable_sort(indices.begin(), indices.end(), - [&](int a, int b) { - return props.getIntProperty( - kOfxParamPropChoiceOrder, - a) < - props.getIntProperty( - kOfxParamPropChoiceOrder, - b); - }); + std::stable_sort( + indices.begin(), indices.end(), [&](int a, int b) { + return props.getIntProperty(kOfxParamPropChoiceOrder, + a) < + props.getIntProperty(kOfxParamPropChoiceOrder, + b); + }); QStringList ordered_labels; QStringList ordered_values; @@ -519,7 +498,6 @@ olive::plugin::PluginNode::PluginNode( SetInputName(input_id, ClipLabelForName(entry.first, entry.second)); has_texture_input = true; } - const QString source_id = QString::fromUtf8(kOfxImageEffectSimpleSourceClipName); @@ -527,8 +505,7 @@ olive::plugin::PluginNode::PluginNode( SetEffectInput(source_id); } else if (HasInputWithID(kTextureInput)) { SetEffectInput(kTextureInput); - } - else { + } else { if (has_texture_input) { AddInput(kTextureInput, NodeValue::kTexture); SetInputName(kTextureInput, tr("Texture")); @@ -545,7 +522,6 @@ QString olive::plugin::PluginNode::Name() const .getProps() .getStringProperty(kOfxPropLabel) .data(); - } QVector olive::plugin::PluginNode::Category() const @@ -565,7 +541,6 @@ QString olive::plugin::PluginNode::Description() const .getProps() .getStringProperty(kOfxPropPluginDescription) .data(); - } void olive::plugin::PluginNode::ProcessSamples(const NodeValueRow &values, const SampleBuffer &input, @@ -655,7 +630,7 @@ void olive::plugin::PluginNode::Value(const NodeValueRow &value, } if (tex && plugin_instance_) { PluginJob job(plugin_instance_, this, value, globals.time().in()); - + table->Push(NodeValue::kTexture, tex->toJob(job), this); } } @@ -669,30 +644,29 @@ QString olive::plugin::PluginNode::id() const return plugin->getIdentifier().data(); } - olive::Node *olive::plugin::PluginNode::copy() const - { - if (!plugin_instance_) { - return nullptr; - } - - const auto &contexts = plugin_instance_->getPlugin()->getContexts(); - std::string context = kOfxImageEffectContextFilter; - if (!contexts.empty() && - contexts.find(kOfxImageEffectContextFilter) == contexts.end()) { - context = *contexts.begin(); - } - - auto *instance = - plugin_instance_->getPlugin()->createInstance(context, nullptr); - if (!instance) { - return nullptr; - } - - auto *node = new PluginNode(instance); - if (auto *olive_instance = - dynamic_cast(instance)) { - olive_instance->setNode( - std::shared_ptr(node, [](PluginNode *) {})); - } - return node; +olive::Node *olive::plugin::PluginNode::copy() const +{ + if (!plugin_instance_) { + return nullptr; } + + const auto &contexts = plugin_instance_->getPlugin()->getContexts(); + std::string context = kOfxImageEffectContextFilter; + if (!contexts.empty() && + contexts.find(kOfxImageEffectContextFilter) == contexts.end()) { + context = *contexts.begin(); + } + + auto *instance = + plugin_instance_->getPlugin()->createInstance(context, nullptr); + if (!instance) { + return nullptr; + } + + auto *node = new PluginNode(instance); + if (auto *olive_instance = dynamic_cast(instance)) { + olive_instance->setNode( + std::shared_ptr(node, [](PluginNode *) {})); + } + return node; +} diff --git a/app/node/plugins/Plugin.h b/app/node/plugins/Plugin.h index 063c64c03..27ec3e094 100644 --- a/app/node/plugins/Plugin.h +++ b/app/node/plugins/Plugin.h @@ -29,12 +29,11 @@ namespace plugin { const QString kTextureInput = QStringLiteral("tex_in"); -class PluginNode : public olive::Node{ +class PluginNode : public olive::Node { public: - PluginNode(OFX::Host::ImageEffect::Instance* plugin) ; + PluginNode(OFX::Host::ImageEffect::Instance *plugin); ~PluginNode() override; - QString Name() const override; QString id() const override; QVector Category() const override; @@ -58,8 +57,8 @@ public: * corresponding output if it's connected to one. If your node doesn't directly deal with time, the default behavior * of the NodeParam objects will handle everything related to it automatically. */ - void Value(const NodeValueRow &value, - const NodeGlobals &globals, NodeValueTable *table) const override; + void Value(const NodeValueRow &value, const NodeGlobals &globals, + NodeValueTable *table) const override; /** * @brief If Value() pushes a ShaderJob, this is the function that will process them. @@ -82,11 +81,9 @@ private: public slots: void pushButtonClicked(QString name); - }; } } - #endif //PLUGIN_H diff --git a/app/node/project.cpp b/app/node/project.cpp index 4f22b535a..9dc140f0e 100644 --- a/app/node/project.cpp +++ b/app/node/project.cpp @@ -121,9 +121,8 @@ SerializedData Project::Load(QXmlStreamReader *reader) } } - const QString path = bundle_path.isEmpty() - ? file_path - : bundle_path; + const QString path = bundle_path.isEmpty() ? file_path : + bundle_path; if (!path.isEmpty()) { plugin_paths.insert(path); } @@ -239,19 +238,18 @@ void Project::Save(QXmlStreamWriter *writer) const } const QString key = QStringLiteral("%1|%2|%3|%4|%5") - .arg(QString::fromStdString(id)) - .arg(major) - .arg(minor) - .arg(bundle_path) - .arg(file_path); + .arg(QString::fromStdString(id)) + .arg(major) + .arg(minor) + .arg(bundle_path) + .arg(file_path); if (seen.contains(key)) { continue; } seen.insert(key); QMap attrs; - attrs.insert(QStringLiteral("id"), - QString::fromStdString(id)); + attrs.insert(QStringLiteral("id"), QString::fromStdString(id)); attrs.insert(QStringLiteral("major"), QString::number(major)); attrs.insert(QStringLiteral("minor"), QString::number(minor)); if (!bundle_path.isEmpty()) { @@ -269,8 +267,8 @@ void Project::Save(QXmlStreamWriter *writer) const writer->writeStartElement(QStringLiteral("plugins")); for (const auto &entry : plugins_to_save) { writer->writeStartElement(QStringLiteral("plugin")); - for (auto it = entry.second.cbegin(); - it != entry.second.cend(); ++it) { + for (auto it = entry.second.cbegin(); it != entry.second.cend(); + ++it) { writer->writeAttribute(it.key(), it.value()); } writer->writeEndElement(); diff --git a/app/node/project/CMakeLists.txt b/app/node/project/CMakeLists.txt index 81b41c183..4818d21e5 100644 --- a/app/node/project/CMakeLists.txt +++ b/app/node/project/CMakeLists.txt @@ -20,6 +20,6 @@ add_subdirectory(sequence) add_subdirectory(serializer) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/project/folder/CMakeLists.txt b/app/node/project/folder/CMakeLists.txt index d04701644..d106632f4 100644 --- a/app/node/project/folder/CMakeLists.txt +++ b/app/node/project/folder/CMakeLists.txt @@ -16,8 +16,8 @@ set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/project/folder/folder.h - node/project/folder/folder.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/project/folder/folder.h + node/project/folder/folder.cpp + PARENT_SCOPE ) diff --git a/app/node/project/footage/CMakeLists.txt b/app/node/project/footage/CMakeLists.txt index 4d277e07a..579557064 100644 --- a/app/node/project/footage/CMakeLists.txt +++ b/app/node/project/footage/CMakeLists.txt @@ -16,10 +16,10 @@ set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/project/footage/footage.cpp - node/project/footage/footage.h - node/project/footage/footagedescription.cpp - node/project/footage/footagedescription.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/project/footage/footage.cpp + node/project/footage/footage.h + node/project/footage/footagedescription.cpp + node/project/footage/footagedescription.h + PARENT_SCOPE ) diff --git a/app/node/project/footage/footage.cpp b/app/node/project/footage/footage.cpp index efd8238b5..3e1ed542c 100644 --- a/app/node/project/footage/footage.cpp +++ b/app/node/project/footage/footage.cpp @@ -242,11 +242,8 @@ void Footage::set_proxy_enabled(bool enabled) } } -void Footage::SetProxy(const QString &path, - ProxyManager::ProxyState state, - int video_stream_index, - int preset_version, - bool enabled) +void Footage::SetProxy(const QString &path, ProxyManager::ProxyState state, + int video_stream_index, int preset_version, bool enabled) { qDebug() << "Footage::SetProxy:" << filename() << "enabled=" << enabled << "state=" << ProxyManager::ProxyStateToString(state) @@ -598,11 +595,10 @@ void Footage::SaveCustom(QXmlStreamWriter *writer) const if (!proxy_path_.isEmpty() || proxy_enabled_) { writer->writeStartElement(QStringLiteral("proxy")); writer->writeAttribute(QStringLiteral("enabled"), - proxy_enabled_ ? QStringLiteral("1") - : QStringLiteral("0")); + proxy_enabled_ ? QStringLiteral("1") : + QStringLiteral("0")); writer->writeAttribute(QStringLiteral("state"), - ProxyManager::ProxyStateToString( - proxy_state_)); + ProxyManager::ProxyStateToString(proxy_state_)); writer->writeAttribute(QStringLiteral("stream"), QString::number(proxy_video_stream_index_)); writer->writeAttribute(QStringLiteral("preset"), diff --git a/app/node/project/footage/footage.h b/app/node/project/footage/footage.h index 9e697135d..416fe8fc5 100644 --- a/app/node/project/footage/footage.h +++ b/app/node/project/footage/footage.h @@ -200,11 +200,8 @@ public: return proxy_state_; } - void SetProxy(const QString &path, - ProxyManager::ProxyState state, - int video_stream_index, - int preset_version, - bool enabled); + void SetProxy(const QString &path, ProxyManager::ProxyState state, + int video_stream_index, int preset_version, bool enabled); void ClearProxy(); diff --git a/app/node/project/footage/footagedescription.cpp b/app/node/project/footage/footagedescription.cpp index 66efe2370..81848cc63 100644 --- a/app/node/project/footage/footagedescription.cpp +++ b/app/node/project/footage/footagedescription.cpp @@ -78,10 +78,9 @@ bool FootageDescription::Load(const QString &filename) const QStringList split = reader.readElementText().split('/'); if (split.size() == 2) { - SetSourceStartTime( - rational(split.at(0).toInt(), - split.at(1).toInt()), - source); + SetSourceStartTime(rational(split.at(0).toInt(), + split.at(1).toInt()), + source); } } else if (reader.name() == QStringLiteral("streams")) { { diff --git a/app/node/project/sequence/CMakeLists.txt b/app/node/project/sequence/CMakeLists.txt index 4da66c716..7778e502c 100644 --- a/app/node/project/sequence/CMakeLists.txt +++ b/app/node/project/sequence/CMakeLists.txt @@ -16,8 +16,8 @@ set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/project/sequence/sequence.h - node/project/sequence/sequence.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + node/project/sequence/sequence.h + node/project/sequence/sequence.cpp + PARENT_SCOPE ) diff --git a/app/node/project/serializer/CMakeLists.txt b/app/node/project/serializer/CMakeLists.txt index df529037c..8b5ae03f5 100644 --- a/app/node/project/serializer/CMakeLists.txt +++ b/app/node/project/serializer/CMakeLists.txt @@ -16,25 +16,25 @@ set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/project/serializer/serializer.cpp - node/project/serializer/serializer.h - node/project/serializer/serializer190219.cpp - node/project/serializer/serializer190219.h - node/project/serializer/serializer210528.cpp - node/project/serializer/serializer210528.h - node/project/serializer/serializer210907.cpp - node/project/serializer/serializer210907.h - node/project/serializer/serializer211228.cpp - node/project/serializer/serializer211228.h - node/project/serializer/serializer220403.cpp - node/project/serializer/serializer220403.h - node/project/serializer/serializer230220.cpp - node/project/serializer/serializer230220.h + ${OLIVE_SOURCES} + node/project/serializer/serializer.cpp + node/project/serializer/serializer.h + node/project/serializer/serializer190219.cpp + node/project/serializer/serializer190219.h + node/project/serializer/serializer210528.cpp + node/project/serializer/serializer210528.h + node/project/serializer/serializer210907.cpp + node/project/serializer/serializer210907.h + node/project/serializer/serializer211228.cpp + node/project/serializer/serializer211228.h + node/project/serializer/serializer220403.cpp + node/project/serializer/serializer220403.h + node/project/serializer/serializer230220.cpp + node/project/serializer/serializer230220.h - node/project/serializer/typeserializer.cpp - node/project/serializer/typeserializer.h + node/project/serializer/typeserializer.cpp + node/project/serializer/typeserializer.h - PARENT_SCOPE + PARENT_SCOPE ) diff --git a/app/node/project/serializer/serializer.cpp b/app/node/project/serializer/serializer.cpp index 18a8884e1..699634068 100644 --- a/app/node/project/serializer/serializer.cpp +++ b/app/node/project/serializer/serializer.cpp @@ -98,7 +98,7 @@ ProjectSerializer::Result ProjectSerializer::Load(Project *project, } else { Result r(kFileError); r.SetDetails(QStringLiteral("Unable to open '%1': %2") - .arg(filename, project_file.errorString())); + .arg(filename, project_file.errorString())); return r; } } diff --git a/app/node/time/CMakeLists.txt b/app/node/time/CMakeLists.txt index 9f3aa1dc5..7d7fe59ae 100644 --- a/app/node/time/CMakeLists.txt +++ b/app/node/time/CMakeLists.txt @@ -19,6 +19,6 @@ add_subdirectory(timeoffset) add_subdirectory(timeremap) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/node/time/timeformat/CMakeLists.txt b/app/node/time/timeformat/CMakeLists.txt index 552649a6d..665bca754 100644 --- a/app/node/time/timeformat/CMakeLists.txt +++ b/app/node/time/timeformat/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/time/timeformat/timeformat.cpp - node/time/timeformat/timeformat.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/time/timeformat/timeformat.cpp + node/time/timeformat/timeformat.h + PARENT_SCOPE ) diff --git a/app/node/time/timeoffset/CMakeLists.txt b/app/node/time/timeoffset/CMakeLists.txt index 03afa72c3..602c2276a 100644 --- a/app/node/time/timeoffset/CMakeLists.txt +++ b/app/node/time/timeoffset/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/time/timeoffset/timeoffsetnode.cpp - node/time/timeoffset/timeoffsetnode.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/time/timeoffset/timeoffsetnode.cpp + node/time/timeoffset/timeoffsetnode.h + PARENT_SCOPE ) diff --git a/app/node/time/timeremap/CMakeLists.txt b/app/node/time/timeremap/CMakeLists.txt index f15e4dc03..cfc6b5e80 100644 --- a/app/node/time/timeremap/CMakeLists.txt +++ b/app/node/time/timeremap/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - node/time/timeremap/timeremap.cpp - node/time/timeremap/timeremap.h - PARENT_SCOPE + ${OLIVE_SOURCES} + node/time/timeremap/timeremap.cpp + node/time/timeremap/timeremap.h + PARENT_SCOPE ) diff --git a/app/node/traverser.cpp b/app/node/traverser.cpp index 5a7fed0a8..7d3c8bbea 100644 --- a/app/node/traverser.cpp +++ b/app/node/traverser.cpp @@ -502,19 +502,20 @@ void NodeTraverser::ResolveJobs(NodeValue &val) } val.set_value(tex); - } - else if (plugin::PluginJob* plugin_job=dynamic_cast(base_job)) { + } else if (plugin::PluginJob *plugin_job = + dynamic_cast( + base_job)) { VideoParams tex_params = job_tex->params(); // Force internal working format (F32) for plugin processing, // matching FootageJob/GenerateJob behavior. tex_params.set_format(GetCacheVideoParams().format()); - tex_params.set_channel_count(VideoParams::kRGBAChannelCount); + tex_params.set_channel_count( + VideoParams::kRGBAChannelCount); TexturePtr tex = CreateTexture(tex_params); ProcessPluginJob(job_tex, tex, val.source()); val.set_value(tex); - } // Cache resolved value diff --git a/app/node/traverser.h b/app/node/traverser.h index 18bf5a973..ad6c2720a 100644 --- a/app/node/traverser.h +++ b/app/node/traverser.h @@ -147,7 +147,9 @@ protected: return SampleBuffer(); } - virtual TexturePtr ProcessPluginJob(TexturePtr texture, TexturePtr destination, const Node *node); + virtual TexturePtr ProcessPluginJob(TexturePtr texture, + TexturePtr destination, + const Node *node); SampleBuffer CreateSampleBuffer(const AudioParams ¶ms, const rational &length) { diff --git a/app/packaging/CMakeLists.txt b/app/packaging/CMakeLists.txt index aa007f6d7..11eb7cb52 100644 --- a/app/packaging/CMakeLists.txt +++ b/app/packaging/CMakeLists.txt @@ -14,6 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -if(UNIX AND NOT APPLE) - add_subdirectory(linux) -endif() +if (UNIX AND NOT APPLE) + add_subdirectory(linux) +endif () diff --git a/app/packaging/linux/CMakeLists.txt b/app/packaging/linux/CMakeLists.txt index c45dae139..ffaa0a12d 100644 --- a/app/packaging/linux/CMakeLists.txt +++ b/app/packaging/linux/CMakeLists.txt @@ -15,34 +15,34 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -if(GIT_FOUND) - set(APPDATA_RELEASE_VERSION ${PROJECT_VERSION}-${GIT_HASH}) - execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%cd --date=short - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE APPDATA_RELEASE_DATE - OUTPUT_STRIP_TRAILING_WHITESPACE - ) -else() - set(APPDATA_RELEASE_VERSION ${PROJECT_VERSION}) - file(TIMESTAMP "${CMAKE_SOURCE_DIR}/CMakeLists.txt" APPDATA_RELEASE_DATE "%Y-%m-%d") -endif() +if (GIT_FOUND) + set(APPDATA_RELEASE_VERSION ${PROJECT_VERSION}-${GIT_HASH}) + execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=%cd --date=short + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE APPDATA_RELEASE_DATE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +else () + set(APPDATA_RELEASE_VERSION ${PROJECT_VERSION}) + file(TIMESTAMP "${CMAKE_SOURCE_DIR}/CMakeLists.txt" APPDATA_RELEASE_DATE "%Y-%m-%d") +endif () configure_file( - org.oakvideoeditor.Oak.appdata.xml.in - org.oakvideoeditor.Oak.appdata.xml + org.oakvideoeditor.Oak.appdata.xml.in + org.oakvideoeditor.Oak.appdata.xml ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.oakvideoeditor.Oak.appdata.xml DESTINATION share/metainfo) install(FILES org.oakvideoeditor.Oak.desktop DESTINATION share/applications) install(FILES org.oakvideoeditor.Oak.xml DESTINATION share/mime/packages) -foreach(size 16 32 48 64 128 256 512) - install( - FILES icons/${size}x${size}/org.oakvideoeditor.Oak.png - DESTINATION share/icons/hicolor/${size}x${size}/apps - ) - install( - FILES icons/${size}x${size}/application-vnd.olive-project.png - DESTINATION share/icons/hicolor/${size}x${size}/mimetypes - ) -endforeach() +foreach (size 16 32 48 64 128 256 512) + install( + FILES icons/${size}x${size}/org.oakvideoeditor.Oak.png + DESTINATION share/icons/hicolor/${size}x${size}/apps + ) + install( + FILES icons/${size}x${size}/application-vnd.olive-project.png + DESTINATION share/icons/hicolor/${size}x${size}/mimetypes + ) +endforeach () diff --git a/app/packaging/linux/org.oakvideoeditor.Oak.xml b/app/packaging/linux/org.oakvideoeditor.Oak.xml index a85eebc89..ac05ef440 100644 --- a/app/packaging/linux/org.oakvideoeditor.Oak.xml +++ b/app/packaging/linux/org.oakvideoeditor.Oak.xml @@ -18,8 +18,8 @@ --> - - Oak project - - + + Oak project + + diff --git a/app/panel/CMakeLists.txt b/app/panel/CMakeLists.txt index 0f4c9348f..bf3b748e9 100644 --- a/app/panel/CMakeLists.txt +++ b/app/panel/CMakeLists.txt @@ -33,10 +33,10 @@ add_subdirectory(tool) add_subdirectory(viewer) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/panel.h - panel/panel.cpp - panel/panelmanager.h - panel/panelmanager.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/panel.h + panel/panel.cpp + panel/panelmanager.h + panel/panelmanager.cpp + PARENT_SCOPE ) diff --git a/app/panel/audiomonitor/CMakeLists.txt b/app/panel/audiomonitor/CMakeLists.txt index 0fcf37b09..e72e6ffd4 100644 --- a/app/panel/audiomonitor/CMakeLists.txt +++ b/app/panel/audiomonitor/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/audiomonitor/audiomonitor.h - panel/audiomonitor/audiomonitor.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/audiomonitor/audiomonitor.h + panel/audiomonitor/audiomonitor.cpp + PARENT_SCOPE ) diff --git a/app/panel/curve/CMakeLists.txt b/app/panel/curve/CMakeLists.txt index b7a2ad77a..c892071db 100644 --- a/app/panel/curve/CMakeLists.txt +++ b/app/panel/curve/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/curve/curve.h - panel/curve/curve.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/curve/curve.h + panel/curve/curve.cpp + PARENT_SCOPE ) diff --git a/app/panel/footageviewer/CMakeLists.txt b/app/panel/footageviewer/CMakeLists.txt index c8fd5d56d..faee2dbb9 100644 --- a/app/panel/footageviewer/CMakeLists.txt +++ b/app/panel/footageviewer/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/footageviewer/footageviewer.h - panel/footageviewer/footageviewer.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/footageviewer/footageviewer.h + panel/footageviewer/footageviewer.cpp + PARENT_SCOPE ) diff --git a/app/panel/history/CMakeLists.txt b/app/panel/history/CMakeLists.txt index 811a1333d..93f9eb07c 100644 --- a/app/panel/history/CMakeLists.txt +++ b/app/panel/history/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/history/historypanel.h - panel/history/historypanel.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/history/historypanel.h + panel/history/historypanel.cpp + PARENT_SCOPE ) diff --git a/app/panel/multicam/CMakeLists.txt b/app/panel/multicam/CMakeLists.txt index 89062f21e..f29abe741 100644 --- a/app/panel/multicam/CMakeLists.txt +++ b/app/panel/multicam/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/multicam/multicampanel.h - panel/multicam/multicampanel.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/multicam/multicampanel.h + panel/multicam/multicampanel.cpp + PARENT_SCOPE ) diff --git a/app/panel/node/CMakeLists.txt b/app/panel/node/CMakeLists.txt index 5acf9e114..04e37c012 100644 --- a/app/panel/node/CMakeLists.txt +++ b/app/panel/node/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/node/node.h - panel/node/node.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/node/node.h + panel/node/node.cpp + PARENT_SCOPE ) diff --git a/app/panel/panel.cpp b/app/panel/panel.cpp index 441b9a578..fa1399f58 100644 --- a/app/panel/panel.cpp +++ b/app/panel/panel.cpp @@ -131,8 +131,7 @@ void PanelWidget::changeEvent(QEvent *e) if (e->type() == QEvent::WindowStateChange) { if (isVisible() && !isMinimized()) { emit shown(Qt::OtherFocusReason); - } - else { + } else { emit hidden(); } } diff --git a/app/panel/panel.h b/app/panel/panel.h index 9add206bd..6a400a3b1 100644 --- a/app/panel/panel.h +++ b/app/panel/panel.h @@ -287,6 +287,7 @@ signals: void CloseRequested(); void shown(Qt::FocusReason reason); void hidden(); + protected: /** * @brief paintEvent diff --git a/app/panel/param/CMakeLists.txt b/app/panel/param/CMakeLists.txt index 5c8aaaa08..133ac7fbd 100644 --- a/app/panel/param/CMakeLists.txt +++ b/app/panel/param/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/param/param.h - panel/param/param.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/param/param.h + panel/param/param.cpp + PARENT_SCOPE ) diff --git a/app/panel/pixelsampler/CMakeLists.txt b/app/panel/pixelsampler/CMakeLists.txt index 2be528575..960cee367 100644 --- a/app/panel/pixelsampler/CMakeLists.txt +++ b/app/panel/pixelsampler/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/pixelsampler/pixelsamplerpanel.h - panel/pixelsampler/pixelsamplerpanel.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/pixelsampler/pixelsamplerpanel.h + panel/pixelsampler/pixelsamplerpanel.cpp + PARENT_SCOPE ) diff --git a/app/panel/project/CMakeLists.txt b/app/panel/project/CMakeLists.txt index 17008939e..381d92431 100644 --- a/app/panel/project/CMakeLists.txt +++ b/app/panel/project/CMakeLists.txt @@ -15,9 +15,9 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/project/footagemanagementpanel.h - panel/project/project.h - panel/project/project.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/project/footagemanagementpanel.h + panel/project/project.h + panel/project/project.cpp + PARENT_SCOPE ) diff --git a/app/panel/scope/CMakeLists.txt b/app/panel/scope/CMakeLists.txt index 997f26d42..3a256a1bf 100644 --- a/app/panel/scope/CMakeLists.txt +++ b/app/panel/scope/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/scope/scope.h - panel/scope/scope.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/scope/scope.h + panel/scope/scope.cpp + PARENT_SCOPE ) diff --git a/app/panel/sequenceviewer/CMakeLists.txt b/app/panel/sequenceviewer/CMakeLists.txt index 067b7a046..404a902fc 100644 --- a/app/panel/sequenceviewer/CMakeLists.txt +++ b/app/panel/sequenceviewer/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/sequenceviewer/sequenceviewer.h - panel/sequenceviewer/sequenceviewer.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/sequenceviewer/sequenceviewer.h + panel/sequenceviewer/sequenceviewer.cpp + PARENT_SCOPE ) diff --git a/app/panel/table/CMakeLists.txt b/app/panel/table/CMakeLists.txt index 9afcbf2fa..ea479ed4c 100644 --- a/app/panel/table/CMakeLists.txt +++ b/app/panel/table/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/table/table.h - panel/table/table.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/table/table.h + panel/table/table.cpp + PARENT_SCOPE ) diff --git a/app/panel/taskmanager/CMakeLists.txt b/app/panel/taskmanager/CMakeLists.txt index cb56c2366..a6a793093 100644 --- a/app/panel/taskmanager/CMakeLists.txt +++ b/app/panel/taskmanager/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/taskmanager/taskmanager.h - panel/taskmanager/taskmanager.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/taskmanager/taskmanager.h + panel/taskmanager/taskmanager.cpp + PARENT_SCOPE ) diff --git a/app/panel/timebased/CMakeLists.txt b/app/panel/timebased/CMakeLists.txt index 928f80e8f..5e24bded9 100644 --- a/app/panel/timebased/CMakeLists.txt +++ b/app/panel/timebased/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/timebased/timebased.h - panel/timebased/timebased.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/timebased/timebased.h + panel/timebased/timebased.cpp + PARENT_SCOPE ) diff --git a/app/panel/timeline/CMakeLists.txt b/app/panel/timeline/CMakeLists.txt index 67a6c3ca7..6bde5965b 100644 --- a/app/panel/timeline/CMakeLists.txt +++ b/app/panel/timeline/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/timeline/timeline.h - panel/timeline/timeline.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/timeline/timeline.h + panel/timeline/timeline.cpp + PARENT_SCOPE ) diff --git a/app/panel/tool/CMakeLists.txt b/app/panel/tool/CMakeLists.txt index 4a115b032..52a1d4ce7 100644 --- a/app/panel/tool/CMakeLists.txt +++ b/app/panel/tool/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/tool/tool.h - panel/tool/tool.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/tool/tool.h + panel/tool/tool.cpp + PARENT_SCOPE ) diff --git a/app/panel/viewer/CMakeLists.txt b/app/panel/viewer/CMakeLists.txt index 1265ef695..b62eefe56 100644 --- a/app/panel/viewer/CMakeLists.txt +++ b/app/panel/viewer/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - panel/viewer/viewer.h - panel/viewer/viewer.cpp - panel/viewer/viewerbase.h - panel/viewer/viewerbase.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + panel/viewer/viewer.h + panel/viewer/viewer.cpp + panel/viewer/viewerbase.h + panel/viewer/viewerbase.cpp + PARENT_SCOPE ) diff --git a/app/pluginSupport/OliveClip.cpp b/app/pluginSupport/OliveClip.cpp index cb9f71e76..f34bc5ed6 100644 --- a/app/pluginSupport/OliveClip.cpp +++ b/app/pluginSupport/OliveClip.cpp @@ -41,7 +41,8 @@ extern "C" { #include #include } -namespace { +namespace +{ const std::string kBitDepthNoneStr(kOfxBitDepthNone); const std::string kBitDepthByteStr(kOfxBitDepthByte); const std::string kBitDepthShortStr(kOfxBitDepthShort); @@ -117,16 +118,16 @@ static bool PackedDstInfo(AVPixelFormat fmt, int *channels, } } -static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, - const olive::VideoParams ¶ms) +static olive::AVFramePtr +ReadbackTextureToFrame(olive::TexturePtr texture, + const olive::VideoParams ¶ms) { if (!texture || texture->IsDummy() || !texture->renderer()) { return nullptr; } - AVPixelFormat pix_fmt = - olive::FFmpegUtils::GetFFmpegPixelFormat(params.format(), - params.channel_count()); + AVPixelFormat pix_fmt = olive::FFmpegUtils::GetFFmpegPixelFormat( + params.format(), params.channel_count()); if (pix_fmt == AV_PIX_FMT_NONE) { return nullptr; } @@ -145,15 +146,15 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, return nullptr; } const int linesize_pixels = BytesToPixels(frame->linesize[0], params); - texture->renderer()->DownloadFromTexture(texture->id(), params, - frame->data[0], - linesize_pixels); + texture->renderer()->DownloadFromTexture( + texture->id(), params, frame->data[0], linesize_pixels); return frame; } - olive::VideoParams rgba_params( - params.width(), params.height(), olive::core::PixelFormat::U8, 4, - params.pixel_aspect_ratio(), params.interlacing(), params.divider()); + olive::VideoParams rgba_params(params.width(), params.height(), + olive::core::PixelFormat::U8, 4, + params.pixel_aspect_ratio(), + params.interlacing(), params.divider()); olive::AVFramePtr rgba_frame = olive::CreateAVFramePtr(); rgba_frame->format = AV_PIX_FMT_RGBA; @@ -165,9 +166,8 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, const int linesize_pixels = BytesToPixels(rgba_frame->linesize[0], rgba_params); - texture->renderer()->DownloadFromTexture(texture->id(), rgba_params, - rgba_frame->data[0], - linesize_pixels); + texture->renderer()->DownloadFromTexture( + texture->id(), rgba_params, rgba_frame->data[0], linesize_pixels); olive::AVFramePtr dst = olive::CreateAVFramePtr(); dst->format = pix_fmt; @@ -179,9 +179,8 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, SwsContext *sws_ctx = sws_getContext( rgba_frame->width, rgba_frame->height, - static_cast(rgba_frame->format), - dst->width, dst->height, pix_fmt, SWS_POINT, - nullptr, nullptr, nullptr); + static_cast(rgba_frame->format), dst->width, dst->height, + pix_fmt, SWS_POINT, nullptr, nullptr, nullptr); if (!sws_ctx) { return rgba_frame; } @@ -218,9 +217,7 @@ static olive::AVFramePtr ConvertPackedFloatFrame(olive::AVFramePtr src, return nullptr; } - auto clamp01 = [](float v) -> float { - return std::clamp(v, 0.0f, 1.0f); - }; + auto clamp01 = [](float v) -> float { return std::clamp(v, 0.0f, 1.0f); }; for (int y = 0; y < src->height; ++y) { const float *src_row = reinterpret_cast( @@ -242,18 +239,14 @@ static olive::AVFramePtr ConvertPackedFloatFrame(olive::AVFramePtr src, continue; } dst_row_u16[x * dst_channels + 0] = - static_cast( - std::lround(clamp01(r) * 65535.0f)); + static_cast(std::lround(clamp01(r) * 65535.0f)); dst_row_u16[x * dst_channels + 1] = - static_cast( - std::lround(clamp01(g) * 65535.0f)); + static_cast(std::lround(clamp01(g) * 65535.0f)); dst_row_u16[x * dst_channels + 2] = - static_cast( - std::lround(clamp01(b) * 65535.0f)); + static_cast(std::lround(clamp01(b) * 65535.0f)); if (dst_channels == 4) { - dst_row_u16[x * dst_channels + 3] = - static_cast( - std::lround(clamp01(a) * 65535.0f)); + dst_row_u16[x * dst_channels + 3] = static_cast( + std::lround(clamp01(a) * 65535.0f)); } } } else { @@ -270,18 +263,14 @@ static olive::AVFramePtr ConvertPackedFloatFrame(olive::AVFramePtr src, continue; } dst_row[x * dst_channels + 0] = - static_cast( - std::lround(clamp01(r) * 255.0f)); + static_cast(std::lround(clamp01(r) * 255.0f)); dst_row[x * dst_channels + 1] = - static_cast( - std::lround(clamp01(g) * 255.0f)); + static_cast(std::lround(clamp01(g) * 255.0f)); dst_row[x * dst_channels + 2] = - static_cast( - std::lround(clamp01(b) * 255.0f)); + static_cast(std::lround(clamp01(b) * 255.0f)); if (dst_channels == 4) { dst_row[x * dst_channels + 3] = - static_cast( - std::lround(clamp01(a) * 255.0f)); + static_cast(std::lround(clamp01(a) * 255.0f)); } } } @@ -385,7 +374,7 @@ bool olive::plugin::OliveClipInstance::getConnected() const return true; } #endif - if(images_.empty()) + if (images_.empty()) return false; return true; } @@ -394,7 +383,7 @@ bool olive::plugin::OliveClipInstance::getConnected() const return true; } #endif - if(images_.empty()) + if (images_.empty()) return false; return true; } @@ -427,8 +416,9 @@ olive::plugin::OliveClipInstance::getImage(OfxTime time, if (name_ == "Output") { if (!images_.contains(time)) { // make a new ref counted image - images_.insert(time, new Image(*const_cast(this), - params_, bounds, rod, true)); + images_.insert(time, + new Image(*const_cast(this), + params_, bounds, rod, true)); } // add another reference to the member image for this fetch @@ -443,7 +433,7 @@ olive::plugin::OliveClipInstance::getImage(OfxTime time, return images_[time]; } else { if (images_.contains(time)) { - Image* image = images_.value(time); + Image *image = images_.value(time); image->EnsureAllocatedFromParams(params_, bounds, rod, false); image->addReference(); return image; @@ -468,13 +458,13 @@ olive::plugin::OliveClipInstance::getImage(OfxTime time, preferred_params.channel_count() <= 0) { return nullptr; } - + Image *image = new Image(*this, preferred_params, bounds, rod, true); return image; } } -OFX::Host::ImageEffect::Image* +OFX::Host::ImageEffect::Image * olive::plugin::OliveClipInstance::getOutputImage(OfxTime time) { if (images_.contains(time)) { @@ -504,10 +494,11 @@ olive::plugin::OliveClipInstance::getOutputImage(OfxTime time) return image; } -olive::VideoParams olive::plugin::OliveClipInstance::getPluginPreferredParams() const +olive::VideoParams +olive::plugin::OliveClipInstance::getPluginPreferredParams() const { VideoParams result = params_; - + // Get format from base class _pixelDepth (set by getClipPreferences) const std::string &depth = getPixelDepth(); if (!depth.empty()) { @@ -521,7 +512,7 @@ olive::VideoParams olive::plugin::OliveClipInstance::getPluginPreferredParams() result.set_format(core::PixelFormat::F32); } } - + // Get channel count from base class _components (set by getClipPreferences) const std::string &comp = getComponents(); if (!comp.empty()) { @@ -533,7 +524,7 @@ olive::VideoParams olive::plugin::OliveClipInstance::getPluginPreferredParams() result.set_channel_count(1); } } - + return result; } OfxRectD @@ -584,21 +575,24 @@ void olive::plugin::OliveClipInstance::setParams(const VideoParams ¶ms) setComponents(getUnmappedComponents()); } -void olive::plugin::OliveClipInstance::setInputTexture(TexturePtr texture, OfxTime time, bool readback_cpu){ +void olive::plugin::OliveClipInstance::setInputTexture(TexturePtr texture, + OfxTime time, + bool readback_cpu) +{ if (!texture) { return; } VideoParams incoming = texture->params(); - + // Preserve time-related properties from the host/project. // The frame rate of an OFX clip should reflect the project's frame rate, // not the individual input texture's frame rate. If different inputs // have different frame rates, setupClipPreferencesArgs throws an exception. rational saved_frame_rate = params_.frame_rate(); rational saved_time_base = params_.time_base(); - + this->params_ = incoming; - + params_.set_frame_rate(saved_frame_rate); params_.set_time_base(saved_time_base); // Note: We do NOT call setPixelDepth/setComponents here because @@ -622,9 +616,8 @@ void olive::plugin::OliveClipInstance::setInputTexture(TexturePtr texture, OfxTi if (!frame || !frame->data[0]) { frame = ReadbackTextureToFrame(texture, params_); } - AVPixelFormat expected_fmt = - FFmpegUtils::GetFFmpegPixelFormat(params_.format(), - params_.channel_count()); + AVPixelFormat expected_fmt = FFmpegUtils::GetFFmpegPixelFormat( + params_.format(), params_.channel_count()); if (expected_fmt == AV_PIX_FMT_NONE) { return; } @@ -635,21 +628,20 @@ void olive::plugin::OliveClipInstance::setInputTexture(TexturePtr texture, OfxTi static_cast(std::ceil(rod_d.x2)), static_cast(std::ceil(rod_d.y2)) }; - Image* image; + Image *image; if (images_.contains(time)) { image = images_.value(time); image->EnsureAllocatedFromParams(params_, bounds, regionOfDefinition, false); } else { pruneImagesCache(); - image = new Image(*this, params_, bounds, - regionOfDefinition, false); + image = new Image(*this, params_, bounds, regionOfDefinition, false); image->EnsureAllocatedFromParams(params_, bounds, regionOfDefinition, false); images_.insert(time, image); } - uint8_t *dst = (uint8_t*)image->data(); + uint8_t *dst = (uint8_t *)image->data(); if (!dst) { return; } @@ -665,36 +657,38 @@ void olive::plugin::OliveClipInstance::setInputTexture(TexturePtr texture, OfxTi // and SIGSEGV on Apple Silicon (where (int)NaN often evaluates to 0 or // INT_MIN, causing huge offsets into bgrid._data). if (params_.format() == core::PixelFormat::F32) { - const float *fptr = reinterpret_cast(frame->data[0]); + const float *fptr = reinterpret_cast(frame->data[0]); int row_floats = frame->linesize[0] / static_cast(sizeof(float)); bool has_nan = false; for (int y = 0; y < params_.height() && !has_nan; ++y) { - for (int x = 0; x < params_.width() * params_.channel_count(); ++x) { + for (int x = 0; x < params_.width() * params_.channel_count(); + ++x) { float v = fptr[y * row_floats + x]; if (std::isnan(v) || std::isinf(v)) { - qWarning() << "[PLUGIN] NaN/Inf detected in input frame at pixel (" - << x / params_.channel_count() << "," << y - << ") channel=" << (x % params_.channel_count()) - << " value=" << v; + qWarning() + << "[PLUGIN] NaN/Inf detected in input frame at pixel (" + << x / params_.channel_count() << "," << y + << ") channel=" << (x % params_.channel_count()) + << " value=" << v; has_nan = true; break; } } } if (has_nan) { - qWarning() << "[PLUGIN] Filling corrupted input frame with black to avoid CImg crash"; + qWarning() + << "[PLUGIN] Filling corrupted input frame with black to avoid CImg crash"; std::memset(dst, 0, image->row_bytes() * image->height()); return; } } AVFramePtr src_frame = frame; - if (frame->format != expected_fmt || - frame->width != params_.width() || + if (frame->format != expected_fmt || frame->width != params_.width() || frame->height != params_.height()) { - if (PackedFloatChannels(static_cast(frame->format)) > 0) { - AVFramePtr converted = - ConvertPackedFloatFrame(frame, expected_fmt); + if (PackedFloatChannels(static_cast(frame->format)) > + 0) { + AVFramePtr converted = ConvertPackedFloatFrame(frame, expected_fmt); if (converted) { src_frame = converted; goto copy_pixels; @@ -710,9 +704,8 @@ void olive::plugin::OliveClipInstance::setInputTexture(TexturePtr texture, OfxTi SwsContext *sws_ctx = sws_getContext( frame->width, frame->height, - static_cast(frame->format), - converted->width, converted->height, - static_cast(converted->format), + static_cast(frame->format), converted->width, + converted->height, static_cast(converted->format), SWS_POINT, nullptr, nullptr, nullptr); if (!sws_ctx) { return; @@ -727,18 +720,18 @@ void olive::plugin::OliveClipInstance::setInputTexture(TexturePtr texture, OfxTi copy_pixels: int bytes_per_component = params_.format().byte_count(); - int bytes_per_row = params_.width() * params_.channel_count() * - bytes_per_component; + int bytes_per_row = + params_.width() * params_.channel_count() * bytes_per_component; int src_row_bytes = src_frame->linesize[0]; int dst_row_bytes = image->row_bytes(); - int copy_bytes = std::min(bytes_per_row, - std::min(src_row_bytes, dst_row_bytes)); + int copy_bytes = + std::min(bytes_per_row, std::min(src_row_bytes, dst_row_bytes)); int copy_height = std::min(image->height(), src_frame->height); const uint8_t *src = src_frame->data[0]; if (params_.format() == core::PixelFormat::F32) { - const float *src_f = reinterpret_cast(src); - float *dst_f = reinterpret_cast(dst); + const float *src_f = reinterpret_cast(src); + float *dst_f = reinterpret_cast(dst); int src_stride = src_row_bytes / static_cast(sizeof(float)); int dst_stride = dst_row_bytes / static_cast(sizeof(float)); int floats_per_row = copy_bytes / static_cast(sizeof(float)); @@ -754,7 +747,8 @@ copy_pixels: } } if (has_nan) { - qWarning() << "[PLUGIN] NaN/Inf scrubbed from input frame data during copy"; + qWarning() + << "[PLUGIN] NaN/Inf scrubbed from input frame data during copy"; } } else if (dst_row_bytes == src_row_bytes && src_row_bytes == copy_bytes) { std::memcpy(dst, src, copy_bytes * copy_height); @@ -764,8 +758,6 @@ copy_pixels: copy_bytes); } } - - } void olive::plugin::OliveClipInstance::setOutputTexture(TexturePtr texture, @@ -818,18 +810,18 @@ olive::plugin::OliveClipInstance::loadTexture(OfxTime time, const char *format, bounds.x2 = std::min(bounds.x2, rod.x2); bounds.y2 = std::min(bounds.y2, rod.y2); - const int bytes_per_row = - params_.width() * params_.channel_count() * params_.format().byte_count(); + const int bytes_per_row = params_.width() * params_.channel_count() * + params_.format().byte_count(); const std::string &field = getFieldOrder(); - const std::string unique_id = std::to_string( - reinterpret_cast(gl_texture.get())) + "_" + + const std::string unique_id = + std::to_string(reinterpret_cast(gl_texture.get())) + "_" + std::to_string(static_cast(time)); const int texture_id = gl_texture->id().value(); OFX::Host::ImageEffect::Texture *texture = - new OFX::Host::ImageEffect::Texture( - *this, 1.0, 1.0, texture_id, GL_TEXTURE_2D, bounds, rod, - bytes_per_row, field, unique_id); + new OFX::Host::ImageEffect::Texture(*this, 1.0, 1.0, texture_id, + GL_TEXTURE_2D, bounds, rod, + bytes_per_row, field, unique_id); texture->addReference(); return texture; } diff --git a/app/pluginSupport/OliveClip.h b/app/pluginSupport/OliveClip.h index 12fb7bd49..a61dd3009 100644 --- a/app/pluginSupport/OliveClip.h +++ b/app/pluginSupport/OliveClip.h @@ -35,17 +35,18 @@ namespace olive { namespace plugin { -class OliveClipInstance: public OFX::Host::ImageEffect::ClipInstance { +class OliveClipInstance : public OFX::Host::ImageEffect::ClipInstance { public: - OliveClipInstance(OFX::Host::ImageEffect::Instance* effectInstance, - OFX::Host::ImageEffect::ClipDescriptor& desc,VideoParams ¶ms) + OliveClipInstance(OFX::Host::ImageEffect::Instance *effectInstance, + OFX::Host::ImageEffect::ClipDescriptor &desc, + VideoParams ¶ms) : ClipInstance(effectInstance, desc) , params_(params) - , defaultRegionOfDefinitions_{0, 0, 0, 0} + , defaultRegionOfDefinitions_{ 0, 0, 0, 0 } , name_(desc.getName()) { } - OFX::Host::ImageEffect::Image* getOutputImage(OfxTime time); + OFX::Host::ImageEffect::Image *getOutputImage(OfxTime time); const std::string &getUnmappedBitDepth() const override; const std::string &getUnmappedComponents() const override; @@ -56,21 +57,24 @@ public: const std::string &getFieldOrder() const override; bool getConnected() const override; double getUnmappedFrameRate() const override; - void getUnmappedFrameRange(double &startFrame, double &endFrame) const override; + void getUnmappedFrameRange(double &startFrame, + double &endFrame) const override; bool getContinuousSamples() const override; - OFX::Host::ImageEffect::Image* getImage(OfxTime time, const OfxRectD *optionalBounds) override; + OFX::Host::ImageEffect::Image * + getImage(OfxTime time, const OfxRectD *optionalBounds) override; OfxRectD getRegionOfDefinition(OfxTime time) const override; void setRegionOfDefinition(OfxRectD regionOfDefinition, OfxTime time); void setDefaultRegionOfDefinition(OfxRectD regionOfDefinition); void setParams(const VideoParams ¶ms); -# ifdef OFX_SUPPORTS_OPENGLRENDER - OFX::Host::ImageEffect::Texture* loadTexture(OfxTime time, - const char *format, - const OfxRectD *optionalBounds) override; -# endif +#ifdef OFX_SUPPORTS_OPENGLRENDER + OFX::Host::ImageEffect::Texture * + loadTexture(OfxTime time, const char *format, + const OfxRectD *optionalBounds) override; +#endif - void setInputTexture(TexturePtr texture, OfxTime time, bool readback_cpu = true); + void setInputTexture(TexturePtr texture, OfxTime time, + bool readback_cpu = true); void setOutputTexture(TexturePtr texture, OfxTime time); // Get the plugin-preferred VideoParams based on base class _pixelDepth/_components @@ -90,7 +94,7 @@ private: OfxRectD defaultRegionOfDefinitions_; std::string name_; - QMap images_; + QMap images_; #ifdef OFX_SUPPORTS_OPENGLRENDER QMap input_textures_; QMap output_textures_; @@ -99,6 +103,4 @@ private: } } - - #endif //OLIVECLIP_H diff --git a/app/pluginSupport/OliveHost.cpp b/app/pluginSupport/OliveHost.cpp index 570e24448..da2aac90e 100644 --- a/app/pluginSupport/OliveHost.cpp +++ b/app/pluginSupport/OliveHost.cpp @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include @@ -37,14 +37,18 @@ using namespace OFX::Host; using namespace olive::plugin; -namespace olive { -namespace plugin { +namespace olive +{ +namespace plugin +{ class PluginNode; } } -namespace { -void AddPluginPath(OFX::Host::PluginCache *cache, const QString &path, bool recurse = true) +namespace +{ +void AddPluginPath(OFX::Host::PluginCache *cache, const QString &path, + bool recurse = true) { if (!cache || path.isEmpty()) { return; @@ -80,7 +84,8 @@ void olive::plugin::loadPlugins(QString path) host = std::make_shared(); Current::getInstance().setPluginHost(host); - imageEffectPluginCache = std::make_shared(*host); + imageEffectPluginCache = + std::make_shared(*host); Current::getInstance().setPluginCache(imageEffectPluginCache); imageEffectPluginCache->registerInCache( @@ -92,7 +97,8 @@ void olive::plugin::loadPlugins(QString path) const QString home_path = QDir::homePath(); AddPluginPath(cache, QDir(home_path).filePath(".OFX/Plugins")); AddPluginPath(cache, QDir(home_path).filePath(".local/share/OFX/Plugins")); - AddPluginPath(cache, QDir(home_path).filePath(".local/share/olive/ofx/Plugins")); + AddPluginPath(cache, + QDir(home_path).filePath(".local/share/olive/ofx/Plugins")); const QString app_dir = QCoreApplication::applicationDirPath(); AddPluginPath(cache, QDir(app_dir).filePath("../OFX/Plugins")); @@ -109,10 +115,9 @@ void olive::plugin::loadPlugins(QString path) } OliveHost::~OliveHost() { - } -void OliveHost::destroyInstance(OFX::Host::ImageEffect::Instance* instance) +void OliveHost::destroyInstance(OFX::Host::ImageEffect::Instance *instance) { if (!instance) { return; @@ -151,11 +156,12 @@ OliveHost::makeDescriptor(const std::string &bundlePath, return desc; } -ImageEffect::Instance* OliveHost::newInstance(void *clientData, - ImageEffect::ImageEffectPlugin* plugin, - ImageEffect::Descriptor& desc, - const std::string& context){ - auto* instance = new OlivePluginInstance( +ImageEffect::Instance * +OliveHost::newInstance(void *clientData, ImageEffect::ImageEffectPlugin *plugin, + ImageEffect::Descriptor &desc, + const std::string &context) +{ + auto *instance = new OlivePluginInstance( plugin, desc, context, Current::getInstance().interactive()); if (clientData) { auto *node = static_cast(clientData); @@ -165,8 +171,9 @@ ImageEffect::Instance* OliveHost::newInstance(void *clientData, instances_.append(std::shared_ptr(instance)); return instance; }; -OfxStatus olive::plugin::OliveHost::vmessage(const char *type, const char *id, const char *format, - va_list args){ +OfxStatus olive::plugin::OliveHost::vmessage(const char *type, const char *id, + const char *format, va_list args) +{ if (!type || !format) { return kOfxStatFailed; } @@ -178,8 +185,7 @@ OfxStatus olive::plugin::OliveHost::vmessage(const char *type, const char *id, c auto *app = qobject_cast(QCoreApplication::instance()); if (!app) { - qWarning().noquote() - << "OFX message:" << type << message; + qWarning().noquote() << "OFX message:" << type << message; if (strcmp(type, kOfxMessageQuestion) == 0) { return kOfxStatReplyNo; } @@ -187,8 +193,8 @@ OfxStatus olive::plugin::OliveHost::vmessage(const char *type, const char *id, c } if (strcmp(type, kOfxMessageQuestion) == 0) { - auto ret = QMessageBox::question(nullptr, "", message, - QMessageBox::Ok, QMessageBox::Cancel); + auto ret = QMessageBox::question(nullptr, "", message, QMessageBox::Ok, + QMessageBox::Cancel); return (ret == QMessageBox::Ok) ? kOfxStatReplyYes : kOfxStatReplyNo; } @@ -203,8 +209,10 @@ OfxStatus olive::plugin::OliveHost::vmessage(const char *type, const char *id, c return kOfxStatOK; } // TODO: Persistent messages shouldn't use pop-up window. -OfxStatus olive::plugin::OliveHost::setPersistentMessage( - const char *type, const char *id, const char *format, va_list args) +OfxStatus olive::plugin::OliveHost::setPersistentMessage(const char *type, + const char *id, + const char *format, + va_list args) { if (!type || !format) { return kOfxStatFailed; @@ -216,13 +224,13 @@ OfxStatus olive::plugin::OliveHost::setPersistentMessage( QString message(buffer); if (strcmp(type, kOfxMessageError) == 0) { - persistent_messages_.append({HostMessageType::Error, message}); + persistent_messages_.append({ HostMessageType::Error, message }); QMessageBox::critical(nullptr, "", message); } else if (strcmp(type, kOfxMessageWarning) == 0) { - persistent_messages_.append({HostMessageType::Warning, message}); + persistent_messages_.append({ HostMessageType::Warning, message }); QMessageBox::warning(nullptr, "", message); } else if (strcmp(type, kOfxMessageMessage) == 0) { - persistent_messages_.append({HostMessageType::Message, message}); + persistent_messages_.append({ HostMessageType::Message, message }); QMessageBox::information(nullptr, "", message); } else { return kOfxStatFailed; diff --git a/app/pluginSupport/OlivePluginInstance.cpp b/app/pluginSupport/OlivePluginInstance.cpp index eb1033ff2..5b79b4e0f 100644 --- a/app/pluginSupport/OlivePluginInstance.cpp +++ b/app/pluginSupport/OlivePluginInstance.cpp @@ -43,7 +43,8 @@ namespace olive { namespace plugin { -namespace { +namespace +{ const std::string kImageFieldNoneStr(kOfxImageFieldNone); const std::string kImageFieldUpperStr(kOfxImageFieldUpper); const std::string kImageFieldLowerStr(kOfxImageFieldLower); @@ -62,7 +63,8 @@ QString FormatOfxMessage(const char *format, va_list args) return QString::fromUtf8(buffer); } QByteArray dynamic_buffer(needed + 1, 0); - const int written = vsnprintf(dynamic_buffer.data(), dynamic_buffer.size(), format, args); + const int written = + vsnprintf(dynamic_buffer.data(), dynamic_buffer.size(), format, args); if (written < 0) { return QString(); } @@ -136,7 +138,8 @@ ViewerOutput *GetActiveViewerOutput() } } - QList timelines = manager->GetPanelsOfType(); + QList timelines = + manager->GetPanelsOfType(); for (TimelinePanel *panel : timelines) { if (panel && panel->GetConnectedViewer()) { return panel->GetConnectedViewer(); @@ -166,7 +169,7 @@ void OlivePluginInstance::setNode(std::shared_ptr node) } OfxStatus OlivePluginInstance::vmessage(const char *type, const char *id, - const char *format, va_list args) + const char *format, va_list args) { const QString message = FormatOfxMessage(format, args); if (message.isEmpty()) { @@ -180,7 +183,8 @@ OfxStatus OlivePluginInstance::vmessage(const char *type, const char *id, if (is_question) { const auto ret = QMessageBox::question( nullptr, "", message, QMessageBox::Ok, QMessageBox::Cancel); - result = (ret == QMessageBox::Ok) ? kOfxStatReplyYes : kOfxStatReplyNo; + result = (ret == QMessageBox::Ok) ? kOfxStatReplyYes : + kOfxStatReplyNo; } else { QMessageBox::information(nullptr, "", message); result = kOfxStatOK; @@ -191,7 +195,8 @@ OfxStatus OlivePluginInstance::vmessage(const char *type, const char *id, show_message(); } else if (auto *app = QCoreApplication::instance()) { if (is_question) { - QMetaObject::invokeMethod(app, show_message, Qt::BlockingQueuedConnection); + QMetaObject::invokeMethod(app, show_message, + Qt::BlockingQueuedConnection); } else { QMetaObject::invokeMethod(app, show_message, Qt::QueuedConnection); } @@ -201,8 +206,10 @@ OfxStatus OlivePluginInstance::vmessage(const char *type, const char *id, return result; } -OfxStatus OlivePluginInstance::setPersistentMessage(const char *type, const char *id, - const char *format, va_list args) +OfxStatus OlivePluginInstance::setPersistentMessage(const char *type, + const char *id, + const char *format, + va_list args) { const QString message = FormatOfxMessage(format, args); if (message.isEmpty()) { @@ -215,11 +222,13 @@ OfxStatus OlivePluginInstance::setPersistentMessage(const char *type, const char error_type = ErrorType::Error; } // A warning - else if (strncmp(type, kOfxMessageWarning, strlen(kOfxMessageWarning)) == 0) { + else if (strncmp(type, kOfxMessageWarning, strlen(kOfxMessageWarning)) == + 0) { error_type = ErrorType::Warning; } // A simple information - else if (strncmp(type, kOfxMessageMessage, strlen(kOfxMessageMessage)) == 0) { + else if (strncmp(type, kOfxMessageMessage, strlen(kOfxMessageMessage)) == + 0) { error_type = ErrorType::Message; } else { return kOfxStatFailed; @@ -272,7 +281,8 @@ void OlivePluginInstance::getProjectSize(double &xSize, double &ySize) const xSize = params_.width() * par; ySize = params_.height(); } -void OlivePluginInstance::getProjectOffset(double &xOffset, double &yOffset) const +void OlivePluginInstance::getProjectOffset(double &xOffset, + double &yOffset) const { double par = params_.pixel_aspect_ratio().toDouble(); xOffset = params_.x() * par; @@ -317,7 +327,7 @@ void OlivePluginInstance::getRenderScaleRecursive(double &x, double &y) const } OFX::Host::Param::Instance * OlivePluginInstance::newParam(const std::string &name, - OFX::Host::Param::Descriptor &desc) + OFX::Host::Param::Descriptor &desc) { const std::string &type = desc.getType(); @@ -343,8 +353,7 @@ OlivePluginInstance::newParam(const std::string &name, return new Double3DInstance(node_, name, desc, this); } else if (type == kOfxParamTypeInteger3D) { return new Integer3DInstance(node_, name, desc, this); - } else if (type == kOfxParamTypeCustom || - type == kOfxParamTypeBytes) { + } else if (type == kOfxParamTypeCustom || type == kOfxParamTypeBytes) { return new CustomInstance(node_, name, desc, this); } else if (type == kOfxParamTypeGroup) { return new GroupInstance(desc, this); @@ -366,8 +375,7 @@ OfxStatus OlivePluginInstance::editBegin(const std::string &name) edit_param_count_ = 0; if (!name.empty()) { edit_first_label_ = - QCoreApplication::translate( - "OlivePluginInstance", "Change %1") + QCoreApplication::translate("OlivePluginInstance", "Change %1") .arg(QString::fromStdString(name)); } } @@ -383,15 +391,14 @@ OfxStatus OlivePluginInstance::editEnd() if (label.isEmpty()) { if (edit_param_count_ <= 1 && !edit_first_label_.isEmpty()) { label = edit_first_label_; - } else if (edit_param_count_ > 1 && - !edit_first_label_.isEmpty()) { - label = QCoreApplication::translate( - "OlivePluginInstance", "%1 (+%2)") + } else if (edit_param_count_ > 1 && !edit_first_label_.isEmpty()) { + label = QCoreApplication::translate("OlivePluginInstance", + "%1 (+%2)") .arg(edit_first_label_) .arg(edit_param_count_ - 1); } else { - label = QCoreApplication::translate( - "OlivePluginInstance", "Edit Parameters"); + label = QCoreApplication::translate("OlivePluginInstance", + "Edit Parameters"); } } Core::instance()->undo_stack()->push(edit_command_, label); @@ -450,9 +457,8 @@ void OlivePluginInstance::progressStart(const std::string &message, progress_dialog_->deleteLater(); } - QString dialog_message = message.empty() - ? QStringLiteral("Processing...") - : QString::fromStdString(message); + QString dialog_message = message.empty() ? QStringLiteral("Processing...") : + QString::fromStdString(message); progress_dialog_ = new ::olive::ProgressDialog( dialog_message, QStringLiteral("OpenFX"), nullptr); @@ -547,17 +553,17 @@ void OlivePluginInstance::setCustomInArgs(const std::string &action, OFX::Host::ImageEffect::ClipInstance *OlivePluginInstance::newClipInstance( OFX::Host::ImageEffect::Instance *plugin, - OFX::Host::ImageEffect::ClipDescriptor *descriptor, - int index) + OFX::Host::ImageEffect::ClipDescriptor *descriptor, int index) { // Create a new clip instance - OliveClipInstance* clipInstance = new OliveClipInstance(plugin, *descriptor, params_); + OliveClipInstance *clipInstance = + new OliveClipInstance(plugin, *descriptor, params_); // Initialize base class clip properties from VideoParams so that // setupClipPreferencesArgs and plugin constructors (which may fetch // clips and query their properties before getClipPreferences is called) // have valid defaults instead of kOfxImageComponentNone / kOfxBitDepthNone. - std::string depth = kOfxBitDepthFloat; // host default + std::string depth = kOfxBitDepthFloat; // host default std::string comp = kOfxImageComponentRGBA; // host default switch (params_.format()) { diff --git a/app/pluginSupport/OlivePluginInstance.h b/app/pluginSupport/OlivePluginInstance.h index 477ecd40f..9dc95d189 100644 --- a/app/pluginSupport/OlivePluginInstance.h +++ b/app/pluginSupport/OlivePluginInstance.h @@ -33,7 +33,8 @@ #include #include -namespace olive { +namespace olive +{ inline bool IsGuiThread() { @@ -43,48 +44,44 @@ inline bool IsGuiThread() return true; } class ProgressDialog; -namespace plugin { +namespace plugin +{ class PluginNode; -enum class ErrorType{ - Error, - Warning, - Message -}; -struct PersistentErrors{ +enum class ErrorType { Error, Warning, Message }; +struct PersistentErrors { ErrorType type; QString message; }; class OlivePluginInstance : public OFX::Host::ImageEffect::Instance { public: - OlivePluginInstance( - OFX::Host::ImageEffect::ImageEffectPlugin* plugin, - OFX::Host::ImageEffect::Descriptor& desc, - const std::string& context, - bool interactive) + OlivePluginInstance(OFX::Host::ImageEffect::ImageEffectPlugin *plugin, + OFX::Host::ImageEffect::Descriptor &desc, + const std::string &context, bool interactive) : OFX::Host::ImageEffect::Instance(plugin, desc, context, interactive) { } - OlivePluginInstance(OlivePluginInstance& instance) + OlivePluginInstance(OlivePluginInstance &instance) : Instance(instance._plugin, *instance._descriptor, instance._context, instance._interactive) { // Do NOT shallow-copy _clips: Instance::~Instance() deletes them, // which would cause a double-free. Clips are re-created in populate(). - _created=instance._created; - _clipPrefsDirty=instance._clipPrefsDirty; - _continuousSamples=instance._continuousSamples; - _frameVarying=instance._frameVarying; - _outputPreMultiplication=instance._outputPreMultiplication; - _outputFielding=instance._outputFielding; - _outputFrameRate=instance._outputFrameRate; + _created = instance._created; + _clipPrefsDirty = instance._clipPrefsDirty; + _continuousSamples = instance._continuousSamples; + _frameVarying = instance._frameVarying; + _outputPreMultiplication = instance._outputPreMultiplication; + _outputFielding = instance._outputFielding; + _outputFrameRate = instance._outputFrameRate; } - explicit OlivePluginInstance(Instance & instance):Instance(instance){}; + explicit OlivePluginInstance(Instance &instance) + : Instance(instance) {}; ~OlivePluginInstance() override; const std::string &getDefaultOutputFielding() const override; void setVideoParam(VideoParams params) { - this->params_=params; + this->params_ = params; } void setNode(std::shared_ptr node); std::shared_ptr node() const @@ -99,21 +96,17 @@ public: { return _created; } - OFX::Host::ImageEffect::ClipInstance *newClipInstance( - OFX::Host::ImageEffect::Instance *plugin, - OFX::Host::ImageEffect::ClipDescriptor *descriptor, - int index) override; + OFX::Host::ImageEffect::ClipInstance * + newClipInstance(OFX::Host::ImageEffect::Instance *plugin, + OFX::Host::ImageEffect::ClipDescriptor *descriptor, + int index) override; - OfxStatus vmessage(const char* type, - const char* id, - const char* format, - va_list args) override; + OfxStatus vmessage(const char *type, const char *id, const char *format, + va_list args) override; + + OfxStatus setPersistentMessage(const char *type, const char *id, + const char *format, va_list args) override; - OfxStatus setPersistentMessage(const char* type, - const char* id, - const char* format, - va_list args) override; - OfxStatus clearPersistentMessage() override; int persistentMessageCount() const { @@ -124,21 +117,21 @@ public: return persistentErrors_; } - void getProjectSize(double& xSize, double& ySize) const override; - void getProjectOffset(double& xOffset, double& yOffset) const override; - void getProjectExtent(double& xSize, double& ySize) const override; - // The pixel aspect ratio of the current project + void getProjectSize(double &xSize, double &ySize) const override; + void getProjectOffset(double &xOffset, double &yOffset) const override; + void getProjectExtent(double &xSize, double &ySize) const override; + // The pixel aspect ratio of the current project double getProjectPixelAspectRatio() const override; - // The duration of the effect - // This contains the duration of the plug-in effect, in frames. + // The duration of the effect + // This contains the duration of the plug-in effect, in frames. double getEffectDuration() const override; - // For an instance, this is the frame rate of the project the effect is in. + // For an instance, this is the frame rate of the project the effect is in. double getFrameRate() const override; /// This is called whenever a param is changed by the plugin so that - /// the recursive instanceChangedAction will be fed the correct frame + /// the recursive instanceChangedAction will be fed the correct frame double getFrameRecursive() const override; /// This is called whenever a param is changed by the plugin so that @@ -153,14 +146,16 @@ public: /// make a parameter instance /// /// Client host code needs to implement this - OFX::Host::Param::Instance* newParam(const std::string& name, OFX::Host::Param::Descriptor& Descriptor) override; + OFX::Host::Param::Instance * + newParam(const std::string &name, + OFX::Host::Param::Descriptor &Descriptor) override; void SubmitUndoCommand(UndoCommand *command, const QString &label); /// Triggered when the plug-in calls OfxParameterSuiteV1::paramEditBegin /// /// Client host code needs to implement this - virtual OfxStatus editBegin(const std::string& name) override; + virtual OfxStatus editBegin(const std::string &name) override; /// Triggered when the plug-in calls OfxParameterSuiteV1::paramEditEnd /// @@ -210,7 +205,6 @@ public: void setCustomInArgs(const std::string &action, OFX::Host::Property::Set &inArgs) override; - private: QList persistentErrors_; VideoParams params_; @@ -224,8 +218,13 @@ private: bool progress_cancelled_ = false; bool progress_active_ = false; bool open_gl_enabled_ = false; + public: - std::mutex& mutex() { return mutex_; } + std::mutex &mutex() + { + return mutex_; + } + private: std::mutex mutex_; }; diff --git a/app/pluginSupport/image.cpp b/app/pluginSupport/image.cpp index 5adad973a..0d55b7352 100644 --- a/app/pluginSupport/image.cpp +++ b/app/pluginSupport/image.cpp @@ -23,8 +23,10 @@ #include -namespace olive { -namespace plugin { +namespace olive +{ +namespace plugin +{ static const char *PixelDepthToOfx(core::PixelFormat format) { @@ -69,16 +71,14 @@ Image::Image(OFX::Host::ImageEffect::ClipInstance &clip_instance) , premultiplied_alpha_(false) , channel_count_(0) , row_bytes_(0) - , bounds_{0, 0, 0, 0} - , rod_{0, 0, 0, 0} + , bounds_{ 0, 0, 0, 0 } + , rod_{ 0, 0, 0, 0 } { } Image::Image(OFX::Host::ImageEffect::ClipInstance &clip_instance, - const VideoParams ¶ms, - const OfxRectI &bounds, - const OfxRectI &rod, - bool clear) + const VideoParams ¶ms, const OfxRectI &bounds, + const OfxRectI &rod, bool clear) : OFX::Host::ImageEffect::Image(clip_instance) , width_(0) , height_(0) @@ -86,8 +86,8 @@ Image::Image(OFX::Host::ImageEffect::ClipInstance &clip_instance, , premultiplied_alpha_(false) , channel_count_(0) , row_bytes_(0) - , bounds_{0, 0, 0, 0} - , rod_{0, 0, 0, 0} + , bounds_{ 0, 0, 0, 0 } + , rod_{ 0, 0, 0, 0 } { AllocateFromParams(params, bounds, rod, clear); } @@ -97,24 +97,17 @@ Image::~Image() } void Image::AllocateFromParams(const VideoParams ¶ms, - const OfxRectI &bounds, - const OfxRectI &rod, + const OfxRectI &bounds, const OfxRectI &rod, bool clear) { - Allocate(bounds.x2 - bounds.x1, - bounds.y2 - bounds.y1, - params.format(), - params.channel_count(), - params.premultiplied_alpha(), - bounds, - rod, + Allocate(bounds.x2 - bounds.x1, bounds.y2 - bounds.y1, params.format(), + params.channel_count(), params.premultiplied_alpha(), bounds, rod, clear); } void Image::EnsureAllocatedFromParams(const VideoParams ¶ms, const OfxRectI &bounds, - const OfxRectI &rod, - bool clear) + const OfxRectI &rod, bool clear) { bool same = (width_ == bounds.x2 - bounds.x1) && (height_ == bounds.y2 - bounds.y1) && @@ -133,14 +126,9 @@ void Image::EnsureAllocatedFromParams(const VideoParams ¶ms, } } -void Image::Allocate(int width, - int height, - core::PixelFormat format, - int channel_count, - bool premultiplied_alpha, - const OfxRectI &bounds, - const OfxRectI &rod, - bool clear) +void Image::Allocate(int width, int height, core::PixelFormat format, + int channel_count, bool premultiplied_alpha, + const OfxRectI &bounds, const OfxRectI &rod, bool clear) { width_ = width; height_ = height; @@ -173,12 +161,11 @@ void Image::Allocate(int width, setIntProperty(kOfxImagePropRegionOfDefinition, rod.x2, 2); setIntProperty(kOfxImagePropRegionOfDefinition, rod.y2, 3); setStringProperty(kOfxImageEffectPropComponents, - ComponentsToOfx(channel_count_)); - setStringProperty(kOfxImageEffectPropPixelDepth, - PixelDepthToOfx(format_)); + ComponentsToOfx(channel_count_)); + setStringProperty(kOfxImageEffectPropPixelDepth, PixelDepthToOfx(format_)); setStringProperty(kOfxImageEffectPropPreMultiplication, - premultiplied_alpha_ ? kOfxImagePreMultiplied - : kOfxImageUnPreMultiplied); + premultiplied_alpha_ ? kOfxImagePreMultiplied : + kOfxImageUnPreMultiplied); } core::PixelFormat Image::pixel_format() @@ -212,7 +199,7 @@ bool Image::premultiplied_alpha() int Image::width() { - int bounds[4] = {0}; + int bounds[4] = { 0 }; getIntPropertyN(kOfxImagePropBounds, bounds, 4); width_ = bounds[2] - bounds[0]; return width_; @@ -220,7 +207,7 @@ int Image::width() int Image::height() { - int bounds[4] = {0}; + int bounds[4] = { 0 }; getIntPropertyN(kOfxImagePropBounds, bounds, 4); height_ = bounds[3] - bounds[1]; return height_; diff --git a/app/pluginSupport/image.h b/app/pluginSupport/image.h index 7ea5e6658..c210c1aa0 100644 --- a/app/pluginSupport/image.h +++ b/app/pluginSupport/image.h @@ -37,12 +37,11 @@ class Image : public OFX::Host::ImageEffect::Image { public: Image(OFX::Host::ImageEffect::ClipInstance &clip_instance); Image(OFX::Host::ImageEffect::ClipInstance &clip_instance, - const VideoParams ¶ms, - const OfxRectI &bounds, - const OfxRectI &rod, - bool clear = true); + const VideoParams ¶ms, const OfxRectI &bounds, + const OfxRectI &rod, bool clear = true); ~Image(); - uint8_t *data() { + uint8_t *data() + { return (uint8_t *)getPointerProperty(kOfxImagePropData); } int width(); @@ -51,26 +50,20 @@ public: bool premultiplied_alpha(); int channel_count(); - void AllocateFromParams(const VideoParams ¶ms, - const OfxRectI &bounds, - const OfxRectI &rod, - bool clear = true); + void AllocateFromParams(const VideoParams ¶ms, const OfxRectI &bounds, + const OfxRectI &rod, bool clear = true); void EnsureAllocatedFromParams(const VideoParams ¶ms, - const OfxRectI &bounds, - const OfxRectI &rod, + const OfxRectI &bounds, const OfxRectI &rod, bool clear = false); - void Allocate(int width, - int height, - core::PixelFormat format, - int channel_count, - bool premultiplied_alpha, - const OfxRectI &bounds, - const OfxRectI &rod, + void Allocate(int width, int height, core::PixelFormat format, + int channel_count, bool premultiplied_alpha, + const OfxRectI &bounds, const OfxRectI &rod, bool clear = true); int row_bytes() const { return row_bytes_; } + protected: std::vector image_; int width_; diff --git a/app/pluginSupport/paraminstance.cpp b/app/pluginSupport/paraminstance.cpp index d69ef98dd..c01056c1a 100644 --- a/app/pluginSupport/paraminstance.cpp +++ b/app/pluginSupport/paraminstance.cpp @@ -17,7 +17,6 @@ * */ - #include "paraminstance.h" #include "OlivePluginInstance.h" @@ -35,8 +34,7 @@ void SubmitUndoCommand(const std::shared_ptr &node, if (node) { auto *instance = node->getPluginInstance(); - auto *olive_instance = - dynamic_cast(instance); + auto *olive_instance = dynamic_cast(instance); if (olive_instance) { olive_instance->SubmitUndoCommand(command, label); return; diff --git a/app/pluginSupport/paraminstance.h b/app/pluginSupport/paraminstance.h index eb8c5d542..47fab5f1d 100644 --- a/app/pluginSupport/paraminstance.h +++ b/app/pluginSupport/paraminstance.h @@ -41,8 +41,8 @@ namespace olive namespace plugin { -inline bool IsNormalisedCoordinateSystem( - const OFX::Host::Param::Descriptor &descriptor) +inline bool +IsNormalisedCoordinateSystem(const OFX::Host::Param::Descriptor &descriptor) { return descriptor.getDefaultCoordinateSystem() == kOfxParamCoordinatesNormalised; @@ -80,12 +80,14 @@ public: }; class PushbuttonInstance : public OFX::Host::Param::PushbuttonInstance, - public NodeBoundParam { + public NodeBoundParam { protected: - std::shared_ptr node; + std::shared_ptr node; OFX::Host::Param::Descriptor *_descriptor; + public: - PushbuttonInstance(std::shared_ptr effect, const std::string &name, + PushbuttonInstance(std::shared_ptr effect, + const std::string &name, OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::PushbuttonInstance(descriptor, paramSet) @@ -102,22 +104,25 @@ public: class IntegerInstance : public OFX::Host::Param::IntegerInstance, public NodeBoundParam { protected: - std::shared_ptr _node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr _node; + OFX::Host::Param::Descriptor &_descriptor; QString id; mutable std::mutex no_node_mutex_; bool has_value_ = false; int value_ = 0; + public: - IntegerInstance(std::shared_ptrnode, OFX::Host::Param::Descriptor &descriptor, - OFX::Host::Param::SetInstance *paramSet = nullptr) + IntegerInstance(std::shared_ptr node, + OFX::Host::Param::Descriptor &descriptor, + OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::IntegerInstance(descriptor, paramSet) , _node(node) , _descriptor(descriptor) , id(_descriptor.getName().c_str()) { try { - value_ = _descriptor.getProperties().getIntProperty(kOfxParamPropDefault); + value_ = _descriptor.getProperties().getIntProperty( + kOfxParamPropDefault); has_value_ = true; } catch (...) { value_ = 0; @@ -138,13 +143,13 @@ public: if (id.isEmpty()) { return kOfxStatErrBadHandle; } - QVariant variant=_node->GetStandardValue(id); + QVariant variant = _node->GetStandardValue(id); if (variant.canConvert()) { - a=variant.toInt(); + a = variant.toInt(); return kOfxStatOK; } - a=0; + a = 0; return kOfxStatErrValue; } OfxStatus get(OfxTime time, int &data) @@ -157,12 +162,13 @@ public: if (id.isEmpty()) { return kOfxStatErrBadHandle; } - QVariant variant=_node->GetValueAtTime(id, rational::fromDouble(time)); + QVariant variant = + _node->GetValueAtTime(id, rational::fromDouble(time)); if (variant.canConvert()) { - data=variant.toInt(); + data = variant.toInt(); return kOfxStatOK; } - data=0; + data = 0; return kOfxStatErrValue; } OfxStatus set(int data) @@ -201,20 +207,23 @@ public: class DoubleInstance : public OFX::Host::Param::DoubleInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; double value_ = 0.0; + public: - DoubleInstance(std::shared_ptr effect, const std::string& name, OFX::Host::Param::Descriptor& descriptor, - OFX::Host::Param::SetInstance *paramSet = nullptr) + DoubleInstance(std::shared_ptr effect, const std::string &name, + OFX::Host::Param::Descriptor &descriptor, + OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::DoubleInstance(descriptor, paramSet) , node(effect) , _descriptor(descriptor) { (void)name; try { - value_ = _descriptor.getProperties().getDoubleProperty(kOfxParamPropDefault); + value_ = _descriptor.getProperties().getDoubleProperty( + kOfxParamPropDefault); has_value_ = true; } catch (...) { value_ = 0.0; @@ -225,13 +234,14 @@ public: { node = new_node; } - OfxStatus get(double& data) + OfxStatus get(double &data) { if (!node) { data = has_value_ ? value_ : 0.0; return kOfxStatOK; } - QVariant variant = node->GetStandardValue(_descriptor.getName().c_str()); + QVariant variant = + node->GetStandardValue(_descriptor.getName().c_str()); if (variant.canConvert()) { data = variant.toDouble(); if (IsNormalisedCoordinateSystem(_descriptor)) { @@ -244,15 +254,14 @@ public: data = 0.0; return kOfxStatErrValue; } - OfxStatus get(OfxTime time, double& data) + OfxStatus get(OfxTime time, double &data) { if (!node) { data = has_value_ ? value_ : 0.0; return kOfxStatOK; } - QVariant variant = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)); + QVariant variant = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)); if (variant.canConvert()) { data = variant.toDouble(); if (IsNormalisedCoordinateSystem(_descriptor)) { @@ -299,17 +308,17 @@ public: val = ToCanonical(val, xSize); } auto command = new MultiUndoCommand(); - Node::SetValueAtTime( - NodeInput(node.get(), _descriptor.getName().c_str()), - rational::fromDouble(time), val, 0, command, true); + Node::SetValueAtTime(NodeInput(node.get(), + _descriptor.getName().c_str()), + rational::fromDouble(time), val, 0, command, true); SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } - OfxStatus derive(OfxTime, double&) + OfxStatus derive(OfxTime, double &) { return kOfxStatErrUnsupported; } - OfxStatus integrate(OfxTime, OfxTime, double&) + OfxStatus integrate(OfxTime, OfxTime, double &) { return kOfxStatErrUnsupported; } @@ -318,18 +327,20 @@ public: class BooleanInstance : public OFX::Host::Param::BooleanInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; bool value_ = false; bool DefaultValue() const { - return _descriptor.getProperties() - .getIntProperty(kOfxParamPropDefault) != 0; + return _descriptor.getProperties().getIntProperty( + kOfxParamPropDefault) != 0; } + public: - BooleanInstance(std::shared_ptr effect, const std::string& name, OFX::Host::Param::Descriptor& descriptor, - OFX::Host::Param::SetInstance *paramSet = nullptr) + BooleanInstance(std::shared_ptr effect, const std::string &name, + OFX::Host::Param::Descriptor &descriptor, + OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::BooleanInstance(descriptor, paramSet) , node(effect) , _descriptor(descriptor) @@ -342,13 +353,14 @@ public: { node = new_node; } - OfxStatus get(bool& data) + OfxStatus get(bool &data) { if (!node) { data = has_value_ ? value_ : false; return kOfxStatOK; } - QVariant variant = node->GetStandardValue(_descriptor.getName().c_str()); + QVariant variant = + node->GetStandardValue(_descriptor.getName().c_str()); if (variant.canConvert()) { data = variant.toBool(); return kOfxStatOK; @@ -356,17 +368,18 @@ public: data = DefaultValue(); return kOfxStatOK; } - OfxStatus get(OfxTime time, bool& data) + OfxStatus get(OfxTime time, bool &data) { if (!node) { data = has_value_ ? value_ : false; return kOfxStatOK; } - QVariant variant = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)); - if (variant.isNull()){ - qWarning().noquote()<<"Boolean get failed: Varient is null" << time << rational::fromDouble(time).toDouble(); + QVariant variant = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)); + if (variant.isNull()) { + qWarning().noquote() + << "Boolean get failed: Varient is null" << time + << rational::fromDouble(time).toDouble(); } if (!variant.isValid()) { qWarning().noquote() @@ -413,20 +426,23 @@ public: class ChoiceInstance : public OFX::Host::Param::ChoiceInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; int value_ = 0; + public: - ChoiceInstance(std::shared_ptr effect, const std::string& name, OFX::Host::Param::Descriptor& descriptor, - OFX::Host::Param::SetInstance *paramSet = nullptr) + ChoiceInstance(std::shared_ptr effect, const std::string &name, + OFX::Host::Param::Descriptor &descriptor, + OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::ChoiceInstance(descriptor, paramSet) , node(effect) , _descriptor(descriptor) { (void)name; try { - value_ = _descriptor.getProperties().getIntProperty(kOfxParamPropDefault); + value_ = _descriptor.getProperties().getIntProperty( + kOfxParamPropDefault); has_value_ = true; } catch (...) { value_ = 0; @@ -437,13 +453,14 @@ public: { node = new_node; } - OfxStatus get(int& data) + OfxStatus get(int &data) { if (!node) { data = has_value_ ? value_ : 0; return kOfxStatOK; } - QVariant variant = node->GetStandardValue(_descriptor.getName().c_str()); + QVariant variant = + node->GetStandardValue(_descriptor.getName().c_str()); if (variant.canConvert()) { data = variant.toInt(); return kOfxStatOK; @@ -451,15 +468,14 @@ public: data = 0; return kOfxStatErrValue; } - OfxStatus get(OfxTime time, int& data) + OfxStatus get(OfxTime time, int &data) { if (!node) { data = has_value_ ? value_ : 0; return kOfxStatOK; } - QVariant variant = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)); + QVariant variant = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)); if (variant.canConvert()) { data = variant.toInt(); return kOfxStatOK; @@ -500,12 +516,14 @@ public: class RGBAInstance : public OFX::Host::Param::RGBAInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; - double value_[4] = {0.0, 0.0, 0.0, 0.0}; + double value_[4] = { 0.0, 0.0, 0.0, 0.0 }; + public: - RGBAInstance(std::shared_ptr effect, const std::string& name, OFX::Host::Param::Descriptor& descriptor, + RGBAInstance(std::shared_ptr effect, const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::RGBAInstance(descriptor, paramSet) , node(effect) @@ -517,7 +535,7 @@ public: { node = new_node; } - OfxStatus get(double& r,double& g,double& b,double& a) + OfxStatus get(double &r, double &g, double &b, double &a) { if (!node) { if (has_value_) { @@ -540,7 +558,7 @@ public: a = static_cast(c.alpha()); return kOfxStatOK; } - OfxStatus get(OfxTime time, double& r,double& g,double& b,double& a) + OfxStatus get(OfxTime time, double &r, double &g, double &b, double &a) { if (!node) { if (has_value_) { @@ -564,7 +582,7 @@ public: a = static_cast(c.alpha()); return kOfxStatOK; } - OfxStatus set(double r,double g,double b,double a) + OfxStatus set(double r, double g, double b, double a) { if (!node) { value_[0] = r; @@ -582,7 +600,7 @@ public: SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } - OfxStatus set(OfxTime time, double r,double g,double b,double a) + OfxStatus set(OfxTime time, double r, double g, double b, double a) { if (!node) { value_[0] = r; @@ -594,29 +612,30 @@ public: } auto command = new MultiUndoCommand(); const QString name = _descriptor.getName().c_str(); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - r, 0, command, true); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - g, 1, command, true); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - b, 2, command, true); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - a, 3, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), r, 0, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), g, 1, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), b, 2, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), a, 3, command, true); SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } }; - class RGBInstance : public OFX::Host::Param::RGBInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; - double value_[3] = {0.0, 0.0, 0.0}; + double value_[3] = { 0.0, 0.0, 0.0 }; + public: - RGBInstance(std::shared_ptr effect, const std::string& name, OFX::Host::Param::Descriptor& descriptor, + RGBInstance(std::shared_ptr effect, const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::RGBInstance(descriptor, paramSet) , node(effect) @@ -628,7 +647,7 @@ public: { node = new_node; } - OfxStatus get(double& r,double& g,double& b) + OfxStatus get(double &r, double &g, double &b) { if (!node) { if (has_value_) { @@ -649,7 +668,7 @@ public: b = static_cast(c.blue()); return kOfxStatOK; } - OfxStatus get(OfxTime time, double& r,double& g,double& b) + OfxStatus get(OfxTime time, double &r, double &g, double &b) { if (!node) { if (has_value_) { @@ -671,7 +690,7 @@ public: b = static_cast(c.blue()); return kOfxStatOK; } - OfxStatus set(double r,double g,double b) + OfxStatus set(double r, double g, double b) { if (!node) { value_[0] = r; @@ -688,7 +707,7 @@ public: SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } - OfxStatus set(OfxTime time, double r,double g,double b) + OfxStatus set(OfxTime time, double r, double g, double b) { if (!node) { value_[0] = r; @@ -699,12 +718,12 @@ public: } auto command = new MultiUndoCommand(); const QString name = _descriptor.getName().c_str(); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - r, 0, command, true); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - g, 1, command, true); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - b, 2, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), r, 0, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), g, 1, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), b, 2, command, true); SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } @@ -713,12 +732,15 @@ public: class Double2DInstance : public OFX::Host::Param::Double2DInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; - double value_[2] = {0.0, 0.0}; + double value_[2] = { 0.0, 0.0 }; + public: - Double2DInstance(std::shared_ptr effect, const std::string& name, OFX::Host::Param::Descriptor& descriptor, + Double2DInstance(std::shared_ptr effect, + const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::Double2DInstance(descriptor, paramSet) , node(effect) @@ -730,7 +752,7 @@ public: { node = new_node; } - OfxStatus get(double& x,double& y) + OfxStatus get(double &x, double &y) { if (!node) { if (has_value_) { @@ -741,9 +763,8 @@ public: } return kOfxStatOK; } - QVector2D vec = - node->GetStandardValue(_descriptor.getName().c_str()) - .value(); + QVector2D vec = node->GetStandardValue(_descriptor.getName().c_str()) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); if (IsNormalisedCoordinateSystem(_descriptor)) { @@ -754,7 +775,7 @@ public: } return kOfxStatOK; } - OfxStatus get(OfxTime time,double& x,double& y) + OfxStatus get(OfxTime time, double &x, double &y) { if (!node) { if (has_value_) { @@ -765,10 +786,9 @@ public: } return kOfxStatOK; } - QVector2D vec = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)) - .value(); + QVector2D vec = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); if (IsNormalisedCoordinateSystem(_descriptor)) { @@ -779,7 +799,7 @@ public: } return kOfxStatOK; } - OfxStatus set(double x,double y) + OfxStatus set(double x, double y) { if (!node) { value_[0] = x; @@ -801,7 +821,7 @@ public: SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } - OfxStatus set(OfxTime time,double x,double y) + OfxStatus set(OfxTime time, double x, double y) { if (!node) { value_[0] = x; @@ -818,10 +838,10 @@ public: } auto command = new MultiUndoCommand(); const QString name = _descriptor.getName().c_str(); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - xv, 0, command, true); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - yv, 1, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), xv, 0, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), yv, 1, command, true); SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } @@ -830,12 +850,15 @@ public: class Integer2DInstance : public OFX::Host::Param::Integer2DInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; - int value_[2] = {0, 0}; + int value_[2] = { 0, 0 }; + public: - Integer2DInstance(std::shared_ptr effect, const std::string& name, OFX::Host::Param::Descriptor& descriptor, + Integer2DInstance(std::shared_ptr effect, + const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::Integer2DInstance(descriptor, paramSet) , node(effect) @@ -847,7 +870,7 @@ public: { node = new_node; } - OfxStatus get(int& x,int& y) + OfxStatus get(int &x, int &y) { if (!node) { if (has_value_) { @@ -858,14 +881,13 @@ public: } return kOfxStatOK; } - QVector2D vec = - node->GetStandardValue(_descriptor.getName().c_str()) - .value(); + QVector2D vec = node->GetStandardValue(_descriptor.getName().c_str()) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); return kOfxStatOK; } - OfxStatus get(OfxTime time,int& x,int& y) + OfxStatus get(OfxTime time, int &x, int &y) { if (!node) { if (has_value_) { @@ -876,15 +898,14 @@ public: } return kOfxStatOK; } - QVector2D vec = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)) - .value(); + QVector2D vec = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); return kOfxStatOK; } - OfxStatus set(int x,int y) + OfxStatus set(int x, int y) { if (!node) { value_[0] = x; @@ -899,7 +920,7 @@ public: SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } - OfxStatus set(OfxTime time,int x,int y) + OfxStatus set(OfxTime time, int x, int y) { if (!node) { value_[0] = x; @@ -909,10 +930,10 @@ public: } auto command = new MultiUndoCommand(); const QString name = _descriptor.getName().c_str(); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - x, 0, command, true); - Node::SetValueAtTime(NodeInput(node.get(), name), rational::fromDouble(time), - y, 1, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), x, 0, command, true); + Node::SetValueAtTime(NodeInput(node.get(), name), + rational::fromDouble(time), y, 1, command, true); SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } @@ -921,13 +942,15 @@ public: class Double3DInstance : public OFX::Host::Param::Double3DInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; - double value_[3] = {0.0, 0.0, 0.0}; + double value_[3] = { 0.0, 0.0, 0.0 }; + public: - Double3DInstance(std::shared_ptr effect, const std::string& name, - OFX::Host::Param::Descriptor& descriptor, + Double3DInstance(std::shared_ptr effect, + const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::Double3DInstance(descriptor, paramSet) , node(effect) @@ -939,7 +962,7 @@ public: { node = new_node; } - OfxStatus get(double& x,double& y,double& z) + OfxStatus get(double &x, double &y, double &z) { if (!node) { if (has_value_) { @@ -951,9 +974,8 @@ public: } return kOfxStatOK; } - QVector3D vec = - node->GetStandardValue(_descriptor.getName().c_str()) - .value(); + QVector3D vec = node->GetStandardValue(_descriptor.getName().c_str()) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); z = static_cast(vec.z()); @@ -966,7 +988,7 @@ public: } return kOfxStatOK; } - OfxStatus get(OfxTime time,double& x,double& y,double& z) + OfxStatus get(OfxTime time, double &x, double &y, double &z) { if (!node) { if (has_value_) { @@ -978,10 +1000,9 @@ public: } return kOfxStatOK; } - QVector3D vec = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)) - .value(); + QVector3D vec = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); z = static_cast(vec.z()); @@ -994,7 +1015,7 @@ public: } return kOfxStatOK; } - OfxStatus set(double x,double y,double z) + OfxStatus set(double x, double y, double z) { if (!node) { value_[0] = x; @@ -1018,7 +1039,7 @@ public: SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } - OfxStatus set(OfxTime time,double x,double y,double z) + OfxStatus set(OfxTime time, double x, double y, double z) { if (!node) { value_[0] = x; @@ -1051,13 +1072,15 @@ public: class Integer3DInstance : public OFX::Host::Param::Integer3DInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; - int value_[3] = {0, 0, 0}; + int value_[3] = { 0, 0, 0 }; + public: - Integer3DInstance(std::shared_ptr effect, const std::string& name, - OFX::Host::Param::Descriptor& descriptor, + Integer3DInstance(std::shared_ptr effect, + const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::Integer3DInstance(descriptor, paramSet) , node(effect) @@ -1069,7 +1092,7 @@ public: { node = new_node; } - OfxStatus get(int& x,int& y,int& z) + OfxStatus get(int &x, int &y, int &z) { if (!node) { if (has_value_) { @@ -1081,15 +1104,14 @@ public: } return kOfxStatOK; } - QVector3D vec = - node->GetStandardValue(_descriptor.getName().c_str()) - .value(); + QVector3D vec = node->GetStandardValue(_descriptor.getName().c_str()) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); z = static_cast(vec.z()); return kOfxStatOK; } - OfxStatus get(OfxTime time,int& x,int& y,int& z) + OfxStatus get(OfxTime time, int &x, int &y, int &z) { if (!node) { if (has_value_) { @@ -1101,16 +1123,15 @@ public: } return kOfxStatOK; } - QVector3D vec = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)) - .value(); + QVector3D vec = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)) + .value(); x = static_cast(vec.x()); y = static_cast(vec.y()); z = static_cast(vec.z()); return kOfxStatOK; } - OfxStatus set(int x,int y,int z) + OfxStatus set(int x, int y, int z) { if (!node) { value_[0] = x; @@ -1126,7 +1147,7 @@ public: SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } - OfxStatus set(OfxTime time,int x,int y,int z) + OfxStatus set(OfxTime time, int x, int y, int z) { if (!node) { value_[0] = x; @@ -1151,13 +1172,14 @@ public: class StringInstance : public OFX::Host::Param::StringInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; std::string value_; + public: - StringInstance(std::shared_ptr effect, const std::string& name, - OFX::Host::Param::Descriptor& descriptor, + StringInstance(std::shared_ptr effect, const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::StringInstance(descriptor, paramSet) , node(effect) @@ -1165,7 +1187,8 @@ public: { (void)name; try { - value_ = _descriptor.getProperties().getStringProperty(kOfxParamPropDefault); + value_ = _descriptor.getProperties().getStringProperty( + kOfxParamPropDefault); has_value_ = true; } catch (...) { value_.clear(); @@ -1182,7 +1205,8 @@ public: data = has_value_ ? value_ : std::string(); return kOfxStatOK; } - QVariant variant = node->GetStandardValue(_descriptor.getName().c_str()); + QVariant variant = + node->GetStandardValue(_descriptor.getName().c_str()); if (variant.canConvert()) { data = variant.toString().toStdString(); return kOfxStatOK; @@ -1196,9 +1220,8 @@ public: data = has_value_ ? value_ : std::string(); return kOfxStatOK; } - QVariant variant = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)); + QVariant variant = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)); if (variant.canConvert()) { data = variant.toString().toStdString(); return kOfxStatOK; @@ -1229,9 +1252,10 @@ public: return kOfxStatOK; } auto command = new MultiUndoCommand(); - Node::SetValueAtTime( - NodeInput(node.get(), _descriptor.getName().c_str()), - rational::fromDouble(time), QString::fromUtf8(data), 0, command, true); + Node::SetValueAtTime(NodeInput(node.get(), + _descriptor.getName().c_str()), + rational::fromDouble(time), + QString::fromUtf8(data), 0, command, true); SubmitUndoCommand(node, command, ParamChangeLabel(_descriptor)); return kOfxStatOK; } @@ -1240,13 +1264,14 @@ public: class CustomInstance : public OFX::Host::Param::CustomInstance, public NodeBoundParam { protected: - std::shared_ptr node; - OFX::Host::Param::Descriptor& _descriptor; + std::shared_ptr node; + OFX::Host::Param::Descriptor &_descriptor; bool has_value_ = false; std::string value_; + public: - CustomInstance(std::shared_ptr effect, const std::string& name, - OFX::Host::Param::Descriptor& descriptor, + CustomInstance(std::shared_ptr effect, const std::string &name, + OFX::Host::Param::Descriptor &descriptor, OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::CustomInstance(descriptor, paramSet) , node(effect) @@ -1264,7 +1289,8 @@ public: data = has_value_ ? value_ : std::string(); return kOfxStatOK; } - QVariant variant = node->GetStandardValue(_descriptor.getName().c_str()); + QVariant variant = + node->GetStandardValue(_descriptor.getName().c_str()); if (variant.canConvert()) { data = variant.toByteArray().toStdString(); return kOfxStatOK; @@ -1282,9 +1308,8 @@ public: data = has_value_ ? value_ : std::string(); return kOfxStatOK; } - QVariant variant = - node->GetValueAtTime(_descriptor.getName().c_str(), - rational::fromDouble(time)); + QVariant variant = node->GetValueAtTime(_descriptor.getName().c_str(), + rational::fromDouble(time)); if (variant.canConvert()) { data = variant.toByteArray().toStdString(); return kOfxStatOK; @@ -1329,8 +1354,8 @@ public: class GroupInstance : public OFX::Host::Param::GroupInstance { public: - GroupInstance(OFX::Host::Param::Descriptor& descriptor, - OFX::Host::Param::SetInstance *paramSet = nullptr) + GroupInstance(OFX::Host::Param::Descriptor &descriptor, + OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::GroupInstance(descriptor, paramSet) { } @@ -1338,8 +1363,8 @@ public: class PageInstance : public OFX::Host::Param::PageInstance { public: - PageInstance(OFX::Host::Param::Descriptor& descriptor, - OFX::Host::Param::SetInstance *paramSet = nullptr) + PageInstance(OFX::Host::Param::Descriptor &descriptor, + OFX::Host::Param::SetInstance *paramSet = nullptr) : OFX::Host::Param::PageInstance(descriptor, paramSet) { } @@ -1347,6 +1372,4 @@ public: } } - - #endif // HOST_DEMO_PARAM_INSTANCE_H diff --git a/app/render/CMakeLists.txt b/app/render/CMakeLists.txt index c3bfbcfb5..69a60d657 100644 --- a/app/render/CMakeLists.txt +++ b/app/render/CMakeLists.txt @@ -21,62 +21,62 @@ add_subdirectory(ocioconf) add_subdirectory(opengl) add_subdirectory(plugin) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - render/audioplaybackcache.cpp - render/audioplaybackcache.h - render/audiowaveformcache.cpp - render/audiowaveformcache.h - render/backend/dynamicrenderer.cpp - render/backend/dynamicrenderer.h - render/backend/renderbackend_c.h - render/cancelatom.h - render/colormanagement.cpp - render/colorprocessor.cpp - render/colorprocessor.h - render/colorprocessorcache.h - render/diskmanager.cpp - render/diskmanager.h - render/framehashcache.cpp - render/framehashcache.h - render/framemanager.cpp - render/framemanager.h - render/interlacetexture.cpp - render/loopmode.h - render/managedcolor.cpp - render/managedcolor.h - render/playbackcache.cpp - render/playbackcache.h - render/previewaudiodevice.cpp - render/previewaudiodevice.h - render/previewautocacher.cpp - render/previewautocacher.h - render/projectcopier.cpp - render/projectcopier.h - render/renderer.cpp - render/renderer.h - render/rendercache.h - render/renderjobtracker.cpp - render/renderjobtracker.h - render/rendermanager.cpp - render/rendermanager.h - render/renderworkerpool.cpp - render/renderworkerpool.h - render/rendermodes.h - render/renderprocessor.cpp - render/renderprocessor.h - render/renderticket.cpp - render/renderticket.h - render/shadercode.h - render/subtitleparams.cpp - render/subtitleparams.h - render/texture.cpp - render/texture.h - render/videoparams.cpp - render/videoparams.h - PARENT_SCOPE + ${OLIVE_SOURCES} + render/audioplaybackcache.cpp + render/audioplaybackcache.h + render/audiowaveformcache.cpp + render/audiowaveformcache.h + render/backend/dynamicrenderer.cpp + render/backend/dynamicrenderer.h + render/backend/renderbackend_c.h + render/cancelatom.h + render/colormanagement.cpp + render/colorprocessor.cpp + render/colorprocessor.h + render/colorprocessorcache.h + render/diskmanager.cpp + render/diskmanager.h + render/framehashcache.cpp + render/framehashcache.h + render/framemanager.cpp + render/framemanager.h + render/interlacetexture.cpp + render/loopmode.h + render/managedcolor.cpp + render/managedcolor.h + render/playbackcache.cpp + render/playbackcache.h + render/previewaudiodevice.cpp + render/previewaudiodevice.h + render/previewautocacher.cpp + render/previewautocacher.h + render/projectcopier.cpp + render/projectcopier.h + render/renderer.cpp + render/renderer.h + render/rendercache.h + render/renderjobtracker.cpp + render/renderjobtracker.h + render/rendermanager.cpp + render/rendermanager.h + render/renderworkerpool.cpp + render/renderworkerpool.h + render/rendermodes.h + render/renderprocessor.cpp + render/renderprocessor.h + render/renderticket.cpp + render/renderticket.h + render/shadercode.h + render/subtitleparams.cpp + render/subtitleparams.h + render/texture.cpp + render/texture.h + render/videoparams.cpp + render/videoparams.h + PARENT_SCOPE ) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - PARENT_SCOPE + ${OLIVE_RESOURCES} + PARENT_SCOPE ) diff --git a/app/render/backend/dynamicrenderer.cpp b/app/render/backend/dynamicrenderer.cpp index eaeb8ab55..9683a1bb0 100644 --- a/app/render/backend/dynamicrenderer.cpp +++ b/app/render/backend/dynamicrenderer.cpp @@ -37,21 +37,24 @@ DynamicRenderer::~DynamicRenderer() // system libGL/libvulkan loader is never mistaken for an Oak render backend. QString DynamicRenderer::LibraryFilename() const { - const QString base = backend_ == QStringLiteral("vulkan") - ? QStringLiteral("oakvulkan") - : QStringLiteral("oakgl"); + const QString base = backend_ == QStringLiteral("vulkan") ? + QStringLiteral("oakvulkan") : + QStringLiteral("oakgl"); #if defined(Q_OS_WIN) const QString filename = base + QStringLiteral(".dll"); #elif defined(Q_OS_MAC) - const QString filename = QStringLiteral("lib") + base + QStringLiteral(".dylib"); + const QString filename = + QStringLiteral("lib") + base + QStringLiteral(".dylib"); #else - const QString filename = QStringLiteral("lib") + base + QStringLiteral(".so"); + const QString filename = + QStringLiteral("lib") + base + QStringLiteral(".so"); #endif const QDir app_dir(QCoreApplication::applicationDirPath()); const QStringList candidates = { app_dir.filePath(filename), - app_dir.filePath(QDir(QStringLiteral("render_backends")).filePath(filename)), + app_dir.filePath( + QDir(QStringLiteral("render_backends")).filePath(filename)), app_dir.filePath(QDir(QStringLiteral("../lib")).filePath(filename)), app_dir.filePath(QDir(QStringLiteral("../../lib")).filePath(filename)), app_dir.filePath(QDir(QStringLiteral("../app")).filePath(filename)), @@ -77,9 +80,9 @@ bool DynamicRenderer::Load() library_.setFileName(LibraryFilename()); if (!library_.load()) { if (backend_ == QStringLiteral("vulkan")) { - qWarning() << "Failed to load Vulkan render backend" - << library_.fileName() << library_.errorString() - << "falling back to OpenGL backend"; + qWarning() + << "Failed to load Vulkan render backend" << library_.fileName() + << library_.errorString() << "falling back to OpenGL backend"; backend_ = QStringLiteral("opengl"); library_.setFileName(LibraryFilename()); } @@ -126,9 +129,10 @@ bool DynamicRenderer::Load() bool DynamicRenderer::ResolveFunctions() { ResetFunctions(); -#define RESOLVE(member, type, symbol) \ +#define RESOLVE(member, type, symbol) \ member = reinterpret_cast(library_.resolve(symbol)); \ - if (!member) return false + if (!member) \ + return false RESOLVE(create_, OakBackendCreateFn, "oak_renderer_create"); RESOLVE(destroy_, OakBackendDestroyFn, "oak_renderer_destroy"); @@ -259,7 +263,7 @@ void DynamicRenderer::PostInit() // Forwards render target clearing through the C ABI. void DynamicRenderer::ClearDestination(Texture *texture, double r, double g, - double b, double a) + double b, double a) { clear_destination_(handle_, texture, r, g, b, a); } @@ -281,16 +285,16 @@ void DynamicRenderer::DestroyNativeShader(QVariant shader) // Uploads CPU pixel data into a backend texture through the dynamic ABI. void DynamicRenderer::UploadToTexture(const QVariant &handle, - const VideoParams ¶ms, const void *data, - int linesize) + const VideoParams ¶ms, + const void *data, int linesize) { upload_to_texture_(handle_, &handle, ¶ms, data, linesize); } // Downloads backend texture data into a caller-provided CPU buffer. void DynamicRenderer::DownloadFromTexture(const QVariant &handle, - const VideoParams ¶ms, void *data, - int linesize) + const VideoParams ¶ms, void *data, + int linesize) { download_from_texture_(handle_, &handle, ¶ms, data, linesize); } @@ -313,9 +317,9 @@ Color DynamicRenderer::GetPixelFromTexture(Texture *texture, const QPointF &pt) // null so callers can avoid GL-only paths. QOpenGLContext *DynamicRenderer::OpenGLContext() const { - return opengl_context_ && handle_ - ? static_cast(opengl_context_(handle_)) - : nullptr; + return opengl_context_ && handle_ ? + static_cast(opengl_context_(handle_)) : + nullptr; } // Reports the effective backend after any load-time fallback has completed. @@ -331,8 +335,8 @@ bool DynamicRenderer::IsVulkan() const // Dispatches a shader blit to the loaded backend. void DynamicRenderer::Blit(QVariant shader, AcceleratedJob &job, - Texture *destination, VideoParams destination_params, - bool clear_destination) + Texture *destination, VideoParams destination_params, + bool clear_destination) { blit_(handle_, &shader, &job, destination, &destination_params, clear_destination); @@ -340,12 +344,13 @@ void DynamicRenderer::Blit(QVariant shader, AcceleratedJob &job, // Allocates a backend-native texture and wraps its opaque handle in QVariant. QVariant DynamicRenderer::CreateNativeTexture(int width, int height, int depth, - PixelFormat format, int channel_count, - const void *data, int linesize) + PixelFormat format, + int channel_count, + const void *data, int linesize) { QVariant out; create_native_texture_(handle_, width, height, depth, format, channel_count, - data, linesize, &out); + data, linesize, &out); return out; } diff --git a/app/render/backend/dynamicrenderer.h b/app/render/backend/dynamicrenderer.h index 2a0705a53..5ea0b684b 100644 --- a/app/render/backend/dynamicrenderer.h +++ b/app/render/backend/dynamicrenderer.h @@ -42,26 +42,26 @@ public: // Runs backend post-init setup. virtual void PostInit() override; // Clears either a native texture destination or the backend output target. - virtual void ClearDestination(Texture *texture = nullptr, - double r = 0.0, double g = 0.0, - double b = 0.0, double a = 0.0) override; + virtual void ClearDestination(Texture *texture = nullptr, double r = 0.0, + double g = 0.0, double b = 0.0, + double a = 0.0) override; // Creates a native shader through the dynamic backend. virtual QVariant CreateNativeShader(ShaderCode code) override; // Destroys a native shader through the dynamic backend. virtual void DestroyNativeShader(QVariant shader) override; // Uploads CPU pixels to a backend texture. virtual void UploadToTexture(const QVariant &handle, - const VideoParams ¶ms, const void *data, - int linesize) override; + const VideoParams ¶ms, const void *data, + int linesize) override; // Downloads backend texture pixels to CPU memory. virtual void DownloadFromTexture(const QVariant &handle, - const VideoParams ¶ms, void *data, - int linesize) override; + const VideoParams ¶ms, void *data, + int linesize) override; // Waits for backend work to complete. virtual void Flush() override; // Reads one pixel from a backend texture. virtual Color GetPixelFromTexture(Texture *texture, - const QPointF &pt) override; + const QPointF &pt) override; // Returns the wrapped OpenGL context for OpenGL backends. virtual QOpenGLContext *OpenGLContext() const override; @@ -79,13 +79,13 @@ public: protected: // Dispatches a shader blit through the dynamic backend. virtual void Blit(QVariant shader, AcceleratedJob &job, - Texture *destination, VideoParams destination_params, - bool clear_destination) override; + Texture *destination, VideoParams destination_params, + bool clear_destination) override; // Allocates a native texture through the dynamic backend. virtual QVariant CreateNativeTexture(int width, int height, int depth, - PixelFormat format, int channel_count, - const void *data = nullptr, - int linesize = 0) override; + PixelFormat format, int channel_count, + const void *data = nullptr, + int linesize = 0) override; // Releases a native texture through the dynamic backend. virtual void DestroyNativeTexture(QVariant texture) override; // Releases backend-owned renderer resources. diff --git a/app/render/backend/renderbackend_c.h b/app/render/backend/renderbackend_c.h index 173f55d6c..11ebc0ea3 100644 --- a/app/render/backend/renderbackend_c.h +++ b/app/render/backend/renderbackend_c.h @@ -7,7 +7,8 @@ #ifdef _WIN32 #define OAK_RENDER_BACKEND_EXPORT extern "C" __declspec(dllexport) #else -#define OAK_RENDER_BACKEND_EXPORT extern "C" __attribute__((visibility("default"))) +#define OAK_RENDER_BACKEND_EXPORT \ + extern "C" __attribute__((visibility("default"))) #endif #ifdef __cplusplus @@ -50,14 +51,14 @@ typedef OakRenderBackendHandle (*OakBackendCreateFn)(void *parent); typedef void (*OakBackendDestroyFn)(OakRenderBackendHandle handle); /* Queries backend metadata and capability bits. */ typedef bool (*OakBackendGetInfoFn)(OakRenderBackendHandle handle, - struct OakRenderBackendInfo *out_info); + struct OakRenderBackendInfo *out_info); /* Checks whether the backend can run on the current machine. */ typedef bool (*OakBackendIsAvailableFn)(OakRenderBackendHandle handle); /* Initializes backend-owned device/context resources. */ typedef bool (*OakBackendInitFn)(OakRenderBackendHandle handle); /* Initializes the backend against a caller-supplied GL context when applicable. */ typedef void (*OakBackendInitWithContextFn)(OakRenderBackendHandle handle, - void *context); + void *context); /* Runs backend post-initialization after the device/context exists. */ typedef void (*OakBackendPostInitFn)(OakRenderBackendHandle handle); /* Runs backend post-destroy cleanup before the library unloads. */ @@ -66,40 +67,39 @@ typedef void (*OakBackendPostDestroyFn)(OakRenderBackendHandle handle); typedef void (*OakBackendDestroyInternalFn)(OakRenderBackendHandle handle); /* Clears a texture destination or implicit output target. */ typedef void (*OakBackendClearDestinationFn)(OakRenderBackendHandle handle, - void *texture, double r, double g, - double b, double a); + void *texture, double r, double g, + double b, double a); /* Creates a native texture and writes a QVariant-compatible handle. */ -typedef void (*OakBackendCreateNativeTextureFn)(OakRenderBackendHandle handle, - int width, int height, int depth, - int format, int channel_count, - const void *data, int linesize, - void *out_variant); +typedef void (*OakBackendCreateNativeTextureFn)( + OakRenderBackendHandle handle, int width, int height, int depth, int format, + int channel_count, const void *data, int linesize, void *out_variant); /* Destroys a native texture represented by a QVariant-compatible handle. */ typedef void (*OakBackendDestroyNativeTextureFn)(OakRenderBackendHandle handle, - const void *variant); + const void *variant); /* Creates a native shader and writes a QVariant-compatible handle. */ typedef void (*OakBackendCreateNativeShaderFn)(OakRenderBackendHandle handle, - const void *shader_code, - void *out_variant); + const void *shader_code, + void *out_variant); /* Destroys a native shader represented by a QVariant-compatible handle. */ typedef void (*OakBackendDestroyNativeShaderFn)(OakRenderBackendHandle handle, - const void *variant); + const void *variant); /* Uploads CPU pixel data to a native texture. */ typedef void (*OakBackendUploadToTextureFn)(OakRenderBackendHandle handle, - const void *variant, - const void *video_params, - const void *data, int linesize); + const void *variant, + const void *video_params, + const void *data, int linesize); /* Downloads native texture pixels into caller-owned CPU memory. */ typedef void (*OakBackendDownloadFromTextureFn)(OakRenderBackendHandle handle, - const void *variant, - const void *video_params, - void *data, int linesize); + const void *variant, + const void *video_params, + void *data, int linesize); /* Waits for backend work that must be visible to later operations. */ typedef void (*OakBackendFlushFn)(OakRenderBackendHandle handle); /* Reads one pixel from a texture. */ typedef void (*OakBackendGetPixelFromTextureFn)(OakRenderBackendHandle handle, - void *texture, const void *point, - void *out_color); + void *texture, + const void *point, + void *out_color); /* Executes a shader blit job. */ typedef void (*OakBackendBlitFn)(OakRenderBackendHandle handle, const void *shader, void *job, @@ -108,7 +108,7 @@ typedef void (*OakBackendBlitFn)(OakRenderBackendHandle handle, bool clear_destination); /* Attaches an output texture for OFX OpenGL rendering when supported. */ typedef void (*OakBackendAttachOutputTextureFn)(OakRenderBackendHandle handle, - const void *texture_id); + const void *texture_id); /* Detaches an OFX output texture when supported. */ typedef void (*OakBackendDetachOutputTextureFn)(OakRenderBackendHandle handle); /* Returns the backend OpenGL context, or null for non-OpenGL backends. */ diff --git a/app/render/colormanagement.cpp b/app/render/colormanagement.cpp index 2a7751f9a..de57bd8b4 100644 --- a/app/render/colormanagement.cpp +++ b/app/render/colormanagement.cpp @@ -114,7 +114,7 @@ bool Renderer::GetColorContext(const ColorTransformJob &color_job, color_ctx.lut3d_textures[i].name = sampler_name; color_ctx.lut3d_textures[i].interpolation = (interpolation == OCIO::INTERP_NEAREST) ? Texture::kNearest : - Texture::kLinear; + Texture::kLinear; } color_ctx.lut1d_textures.resize(shader_desc->getNumTextures()); @@ -125,7 +125,8 @@ bool Renderer::GetColorContext(const ColorTransformJob &color_job, OCIO::GpuShaderDesc::TextureType channel = OCIO::GpuShaderDesc::TEXTURE_RGB_CHANNEL; OCIO::Interpolation interpolation = OCIO::INTERP_LINEAR; -#if OCIO_VERSION_MAJOR > 2 || (OCIO_VERSION_MAJOR == 2 && OCIO_VERSION_MINOR >= 3) +#if OCIO_VERSION_MAJOR > 2 || \ + (OCIO_VERSION_MAJOR == 2 && OCIO_VERSION_MINOR >= 3) OCIO::GpuShaderDesc::TextureDimensions dimensions = OCIO::GpuShaderDesc::TEXTURE_2D; shader_desc->getTexture(i, tex_name, sampler_name, width, height, @@ -149,16 +150,18 @@ bool Renderer::GetColorContext(const ColorTransformJob &color_job, } // Allocate 1D LUT - int lut_channels = (channel == - OCIO::GpuShaderDesc::TEXTURE_RED_CHANNEL) ? - 1 : - VideoParams::kRGBChannelCount; - VideoParams lut_params(width, height, PixelFormat::F32, lut_channels); - color_ctx.lut1d_textures[i].texture = CreateTexture(lut_params, values); + int lut_channels = + (channel == OCIO::GpuShaderDesc::TEXTURE_RED_CHANNEL) ? + 1 : + VideoParams::kRGBChannelCount; + VideoParams lut_params(width, height, PixelFormat::F32, + lut_channels); + color_ctx.lut1d_textures[i].texture = + CreateTexture(lut_params, values); color_ctx.lut1d_textures[i].name = sampler_name; color_ctx.lut1d_textures[i].interpolation = (interpolation == OCIO::INTERP_NEAREST) ? Texture::kNearest : - Texture::kLinear; + Texture::kLinear; } locker.relock(); @@ -176,9 +179,9 @@ void Renderer::BlitColorManaged(const ColorTransformJob &color_job, ShaderJob fallback_job; fallback_job.Insert(QStringLiteral("ove_maintex"), color_job.GetInputTexture()); - fallback_job.Insert( - QStringLiteral("ove_mvpmat"), - NodeValue(NodeValue::kMatrix, color_job.GetTransformMatrix())); + fallback_job.Insert(QStringLiteral("ove_mvpmat"), + NodeValue(NodeValue::kMatrix, + color_job.GetTransformMatrix())); if (destination) { BlitToTexture(GetDefaultShader(), fallback_job, destination, @@ -206,12 +209,12 @@ void Renderer::BlitColorManaged(const ColorTransformJob &color_job, foreach (const ColorContext::LUT &l, color_ctx.lut3d_textures) { job.Insert(l.name, NodeValue(NodeValue::kTexture, - QVariant::fromValue(l.texture))); + QVariant::fromValue(l.texture))); job.SetInterpolation(l.name, l.interpolation); } foreach (const ColorContext::LUT &l, color_ctx.lut1d_textures) { job.Insert(l.name, NodeValue(NodeValue::kTexture, - QVariant::fromValue(l.texture))); + QVariant::fromValue(l.texture))); job.SetInterpolation(l.name, l.interpolation); } diff --git a/app/render/colorprocessor.cpp b/app/render/colorprocessor.cpp index 6f6d8b487..e9a5cd4c5 100644 --- a/app/render/colorprocessor.cpp +++ b/app/render/colorprocessor.cpp @@ -29,8 +29,8 @@ namespace olive { ColorProcessor::ColorProcessor(ColorManager *config, const QString &input, - const ColorTransform &transform, - Direction direction) + const ColorTransform &transform, + Direction direction) { processor_ = nullptr; cpu_processor_ = nullptr; @@ -59,17 +59,18 @@ ColorProcessor::ColorProcessor(ColorManager *config, const QString &input, display_transform->setDisplay(output.toUtf8()); display_transform->setView(view.toUtf8()); display_transform->setDirection(direction == kNormal ? - OCIO::TRANSFORM_DIR_FORWARD : - OCIO::TRANSFORM_DIR_INVERSE); + OCIO::TRANSFORM_DIR_FORWARD : + OCIO::TRANSFORM_DIR_INVERSE); if (transform.look().isEmpty()) { processor_ = ocio_config->getProcessor(display_transform); } else { auto group = OCIO::GroupTransform::Create(); - const char *out_cs = OCIO::LookTransform::GetLooksResultColorSpace( - ocio_config, ocio_config->getCurrentContext(), - transform.look().toUtf8()); + const char *out_cs = + OCIO::LookTransform::GetLooksResultColorSpace( + ocio_config, ocio_config->getCurrentContext(), + transform.look().toUtf8()); auto lt = OCIO::LookTransform::Create(); lt->setSrc(resolved_input.toUtf8()); @@ -105,7 +106,8 @@ ColorProcessor::ColorProcessor(ColorManager *config, const QString &input, ColorProcessor::ColorProcessor(OCIO::ConstProcessorRcPtr processor) { processor_ = processor; - cpu_processor_ = processor_ ? processor_->getDefaultCPUProcessor() : nullptr; + cpu_processor_ = processor_ ? processor_->getDefaultCPUProcessor() : + nullptr; } void ColorProcessor::ConvertFrame(Frame *f) @@ -151,7 +153,7 @@ ColorProcessorPtr ColorProcessor::Create(ColorManager *config, Direction direction) { return std::make_shared(config, input, transform, - direction); + direction); } ColorProcessorPtr ColorProcessor::Create(OCIO::ConstProcessorRcPtr processor) diff --git a/app/render/ipc/CMakeLists.txt b/app/render/ipc/CMakeLists.txt index ef1cdaaa7..1fa59d3f5 100644 --- a/app/render/ipc/CMakeLists.txt +++ b/app/render/ipc/CMakeLists.txt @@ -15,13 +15,13 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - render/ipc/frameslotpool.cpp - render/ipc/frameslotpool.h - render/ipc/ipcmessage.cpp - render/ipc/ipcmessage.h - render/ipc/sharedmemoryregion.cpp - render/ipc/sharedmemoryregion.h - render/ipc/spscringbuffer.h - PARENT_SCOPE + ${OLIVE_SOURCES} + render/ipc/frameslotpool.cpp + render/ipc/frameslotpool.h + render/ipc/ipcmessage.cpp + render/ipc/ipcmessage.h + render/ipc/sharedmemoryregion.cpp + render/ipc/sharedmemoryregion.h + render/ipc/spscringbuffer.h + PARENT_SCOPE ) \ No newline at end of file diff --git a/app/render/ipc/frameslotpool.cpp b/app/render/ipc/frameslotpool.cpp index da9345e3c..218d54a33 100644 --- a/app/render/ipc/frameslotpool.cpp +++ b/app/render/ipc/frameslotpool.cpp @@ -36,18 +36,21 @@ size_t AlignUp(size_t value, size_t align) return (value + (align - 1)) & ~(align - 1); } -constexpr size_t kAlign = 64; // Cache-line alignment for each sub-region. +constexpr size_t kAlign = 64; // Cache-line alignment for each sub-region. -} // namespace +} // namespace size_t FrameSlotPool::BytesNeeded(uint32_t slot_count, size_t slot_data_bytes) { const uint32_t ring_cap = RingCapacity(slot_count); size_t total = AlignUp(sizeof(Header), kAlign); - total += AlignUp(SpscRingBuffer::BytesNeeded(ring_cap), kAlign); // free ring - total += AlignUp(SpscRingBuffer::BytesNeeded(ring_cap), kAlign); // ready ring - total += AlignUp(sizeof(FrameSlotMeta) * slot_count, kAlign); // metadata array - total += AlignUp(slot_data_bytes, kAlign) * slot_count; // pixel data blocks + total += + AlignUp(SpscRingBuffer::BytesNeeded(ring_cap), kAlign); // free ring + total += + AlignUp(SpscRingBuffer::BytesNeeded(ring_cap), kAlign); // ready ring + total += + AlignUp(sizeof(FrameSlotMeta) * slot_count, kAlign); // metadata array + total += AlignUp(slot_data_bytes, kAlign) * slot_count; // pixel data blocks return total; } @@ -111,9 +114,12 @@ FrameSlotPool FrameSlotPool::Attach(void *mem) return pool; } - pool.free_ring_ = SpscRingBuffer::Attach(pool.base_ + pool.header_->free_ring_offset); - pool.ready_ring_ = SpscRingBuffer::Attach(pool.base_ + pool.header_->ready_ring_offset); - pool.meta_ = reinterpret_cast(pool.base_ + pool.header_->meta_offset); + pool.free_ring_ = + SpscRingBuffer::Attach(pool.base_ + pool.header_->free_ring_offset); + pool.ready_ring_ = + SpscRingBuffer::Attach(pool.base_ + pool.header_->ready_ring_offset); + pool.meta_ = reinterpret_cast(pool.base_ + + pool.header_->meta_offset); pool.data_ = pool.base_ + pool.header_->data_offset; return pool; @@ -169,5 +175,5 @@ bool FrameSlotPool::Release(uint32_t index) return free_ring_->Push(index); } -} // namespace ipc -} // namespace olive \ No newline at end of file +} // namespace ipc +} // namespace olive \ No newline at end of file diff --git a/app/render/ipc/frameslotpool.h b/app/render/ipc/frameslotpool.h index be08131ed..39020fd9d 100644 --- a/app/render/ipc/frameslotpool.h +++ b/app/render/ipc/frameslotpool.h @@ -40,16 +40,16 @@ namespace ipc * not guaranteed shared-memory-safe). */ struct FrameSlotMeta { - int64_t id; ///< Caller-defined tag (e.g. ticket id, or footage stream hash). - int64_t time_num; ///< Frame timestamp numerator. - int64_t time_den; ///< Frame timestamp denominator. + int64_t id; ///< Caller-defined tag (e.g. ticket id, or footage stream hash). + int64_t time_num; ///< Frame timestamp numerator. + int64_t time_den; ///< Frame timestamp denominator. int32_t width; int32_t height; - int32_t format; ///< olive::PixelFormat::Format value. + int32_t format; ///< olive::PixelFormat::Format value. int32_t channel_count; - int32_t linesize; ///< Bytes per scanline (stride). - int32_t data_size; ///< Valid bytes written into the slot's data block. - char colorspace[128]; ///< Input colorspace name for color-managed footage. + int32_t linesize; ///< Bytes per scanline (stride). + int32_t data_size; ///< Valid bytes written into the slot's data block. + char colorspace[128]; ///< Input colorspace name for color-managed footage. }; /** @@ -90,7 +90,8 @@ public: * Initializes both rings, seeds the free ring with every slot index, and zeroes metadata. * `mem` must provide at least BytesNeeded(slot_count, slot_data_bytes) bytes. */ - static FrameSlotPool Create(void *mem, uint32_t slot_count, size_t slot_data_bytes); + static FrameSlotPool Create(void *mem, uint32_t slot_count, + size_t slot_data_bytes); /** * @brief Map an existing, already-initialized pool (peer side). @@ -148,7 +149,6 @@ public: FrameSlotPool() = default; private: - struct Header { uint32_t magic; uint32_t slot_count; @@ -160,7 +160,7 @@ private: uint64_t data_offset; }; - static constexpr uint32_t kMagic = 0x4F4B5350; // 'OKSP' + static constexpr uint32_t kMagic = 0x4F4B5350; // 'OKSP' // Ring capacity must exceed slot_count by one because a ring can hold at most capacity-1 entries // and we need to be able to enqueue every slot at once. @@ -177,7 +177,7 @@ private: uint8_t *data_ = nullptr; }; -} // namespace ipc -} // namespace olive +} // namespace ipc +} // namespace olive -#endif // IPC_FRAMESLOTPOOL_H \ No newline at end of file +#endif // IPC_FRAMESLOTPOOL_H \ No newline at end of file diff --git a/app/render/ipc/ipcmessage.cpp b/app/render/ipc/ipcmessage.cpp index f8790ae68..a5ec9a984 100644 --- a/app/render/ipc/ipcmessage.cpp +++ b/app/render/ipc/ipcmessage.cpp @@ -227,5 +227,5 @@ bool LoadGraphMsg::FromJson(const QJsonObject &o, LoadGraphMsg *out) return true; } -} // namespace ipc -} // namespace olive +} // namespace ipc +} // namespace olive diff --git a/app/render/ipc/ipcmessage.h b/app/render/ipc/ipcmessage.h index 316088c27..f822dd2e4 100644 --- a/app/render/ipc/ipcmessage.h +++ b/app/render/ipc/ipcmessage.h @@ -63,7 +63,7 @@ constexpr const char *kCancel = "cancel"; constexpr const char *kGraphUpdate = "graph_update"; constexpr const char *kShutdown = "shutdown"; constexpr const char *kError = "error"; -} // namespace msgtype +} // namespace msgtype /** * @brief Write one NDJSON message line to `device`. @@ -92,29 +92,34 @@ bool ReadMessage(QByteArray *buffer, QJsonObject *out, bool *ok = nullptr); struct HandshakeMsg { int protocol_version = 0; - QString shm_key; ///< Worker->main output shared-memory segment key. - QString input_shm_key; ///< Main->worker input shared-memory segment key (optional). - int input_slots = 0; ///< Number of main->worker input frame slots. - int output_slots = 0; ///< Number of worker->main output frame slots. - qint64 slot_data_bytes = 0; ///< Per-output-slot pixel block size. - qint64 input_slot_data_bytes = 0; ///< Per-input-slot pixel block size. + QString shm_key; ///< Worker->main output shared-memory segment key. + QString + input_shm_key; ///< Main->worker input shared-memory segment key (optional). + int input_slots = 0; ///< Number of main->worker input frame slots. + int output_slots = 0; ///< Number of worker->main output frame slots. + qint64 slot_data_bytes = 0; ///< Per-output-slot pixel block size. + qint64 input_slot_data_bytes = 0; ///< Per-input-slot pixel block size. QJsonObject ToJson() const; static bool FromJson(const QJsonObject &o, HandshakeMsg *out); }; struct RenderFrameMsg { - qint64 ticket_id = 0; ///< Correlates this request with the eventual frame_ready. - QString node_uuid; ///< Output/viewer node to render, by stable uuid in the loaded graph. + qint64 ticket_id = + 0; ///< Correlates this request with the eventual frame_ready. + QString + node_uuid; ///< Output/viewer node to render, by stable uuid in the loaded graph. qint64 time_num = 0; qint64 time_den = 1; - int width = 0; ///< Forced output size (0 = use graph default). + int width = 0; ///< Forced output size (0 = use graph default). int height = 0; - int format = -1; ///< Forced PixelFormat::Format (-1 = default/INVALID). - int channel_count = 0; ///< 0 = default. - int mode = 0; ///< RenderMode::Mode. - int input_slot = -1; ///< Optional main->worker decoded input slot for footage nodes. - QVector input_slots; ///< Optional ordered decoded input slots for footage nodes. + int format = -1; ///< Forced PixelFormat::Format (-1 = default/INVALID). + int channel_count = 0; ///< 0 = default. + int mode = 0; ///< RenderMode::Mode. + int input_slot = + -1; ///< Optional main->worker decoded input slot for footage nodes. + QVector + input_slots; ///< Optional ordered decoded input slots for footage nodes. // Output color transform to apply before returning the frame. When empty, // the worker returns the image in the project's reference space. @@ -130,7 +135,7 @@ struct RenderFrameMsg { struct FrameReadyMsg { qint64 ticket_id = 0; - int output_slot = 0; ///< Index into the worker->main output FrameSlotPool. + int output_slot = 0; ///< Index into the worker->main output FrameSlotPool. QJsonObject ToJson() const; static bool FromJson(const QJsonObject &o, FrameReadyMsg *out); @@ -144,13 +149,13 @@ struct CancelMsg { }; struct LoadGraphMsg { - QString path; ///< Temporary file holding the serialized node graph. + QString path; ///< Temporary file holding the serialized node graph. QJsonObject ToJson() const; static bool FromJson(const QJsonObject &o, LoadGraphMsg *out); }; -} // namespace ipc -} // namespace olive +} // namespace ipc +} // namespace olive -#endif // IPC_IPCMESSAGE_H +#endif // IPC_IPCMESSAGE_H diff --git a/app/render/ipc/sharedmemoryregion.cpp b/app/render/ipc/sharedmemoryregion.cpp index ee6e6a8cd..c671f5a0c 100644 --- a/app/render/ipc/sharedmemoryregion.cpp +++ b/app/render/ipc/sharedmemoryregion.cpp @@ -75,16 +75,20 @@ bool SharedMemoryRegion::Open(const QString &key, size_t size, Mode mode) const std::wstring wname = mapping_name.toStdWString(); if (mode == kCreate) { - const DWORD size_high = static_cast((quint64(size) >> 32) & 0xFFFFFFFF); + const DWORD size_high = + static_cast((quint64(size) >> 32) & 0xFFFFFFFF); const DWORD size_low = static_cast(quint64(size) & 0xFFFFFFFF); - handle_ = CreateFileMappingW(INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE, - size_high, size_low, wname.c_str()); + handle_ = CreateFileMappingW(INVALID_HANDLE_VALUE, nullptr, + PAGE_READWRITE, size_high, size_low, + wname.c_str()); if (!handle_) { - error_ = QStringLiteral("CreateFileMapping failed: %1").arg(GetLastError()); + error_ = QStringLiteral("CreateFileMapping failed: %1") + .arg(GetLastError()); return false; } if (GetLastError() == ERROR_ALREADY_EXISTS) { - error_ = QStringLiteral("Shared memory key already exists: %1").arg(key); + error_ = + QStringLiteral("Shared memory key already exists: %1").arg(key); CloseHandle(handle_); handle_ = nullptr; return false; @@ -92,7 +96,8 @@ bool SharedMemoryRegion::Open(const QString &key, size_t size, Mode mode) } else { handle_ = OpenFileMappingW(FILE_MAP_ALL_ACCESS, FALSE, wname.c_str()); if (!handle_) { - error_ = QStringLiteral("OpenFileMapping failed: %1").arg(GetLastError()); + error_ = + QStringLiteral("OpenFileMapping failed: %1").arg(GetLastError()); return false; } } @@ -124,7 +129,7 @@ void SharedMemoryRegion::Close() size_ = 0; } -#else // POSIX +#else // POSIX bool SharedMemoryRegion::Open(const QString &key, size_t size, Mode mode) { @@ -165,7 +170,8 @@ bool SharedMemoryRegion::Open(const QString &key, size_t size, Mode mode) data_ = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd_, 0); if (data_ == MAP_FAILED) { - error_ = QStringLiteral("mmap failed: %1").arg(QString::fromUtf8(strerror(errno))); + error_ = QStringLiteral("mmap failed: %1") + .arg(QString::fromUtf8(strerror(errno))); data_ = nullptr; ::close(fd_); fd_ = -1; @@ -201,5 +207,5 @@ void SharedMemoryRegion::Close() #endif -} // namespace ipc -} // namespace olive \ No newline at end of file +} // namespace ipc +} // namespace olive \ No newline at end of file diff --git a/app/render/ipc/sharedmemoryregion.h b/app/render/ipc/sharedmemoryregion.h index 2a867284e..31437b5e2 100644 --- a/app/render/ipc/sharedmemoryregion.h +++ b/app/render/ipc/sharedmemoryregion.h @@ -110,14 +110,14 @@ private: QString error_; #if defined(Q_OS_WIN) - void *handle_; // HANDLE from CreateFileMapping/OpenFileMapping + void *handle_; // HANDLE from CreateFileMapping/OpenFileMapping #else - int fd_; // file descriptor from shm_open - QString shm_name_; // the platform-prefixed name actually passed to shm_open + int fd_; // file descriptor from shm_open + QString shm_name_; // the platform-prefixed name actually passed to shm_open #endif }; -} // namespace ipc -} // namespace olive +} // namespace ipc +} // namespace olive -#endif // IPC_SHAREDMEMORYREGION_H \ No newline at end of file +#endif // IPC_SHAREDMEMORYREGION_H \ No newline at end of file diff --git a/app/render/ipc/spscringbuffer.h b/app/render/ipc/spscringbuffer.h index a6e62eeb1..200eb8fb6 100644 --- a/app/render/ipc/spscringbuffer.h +++ b/app/render/ipc/spscringbuffer.h @@ -174,11 +174,12 @@ private: std::atomic tail_; uint32_t capacity_; - static_assert(sizeof(std::atomic) == sizeof(uint32_t), - "atomic must be lock-free POD-sized for shared memory use"); + static_assert( + sizeof(std::atomic) == sizeof(uint32_t), + "atomic must be lock-free POD-sized for shared memory use"); }; -} // namespace ipc -} // namespace olive +} // namespace ipc +} // namespace olive -#endif // IPC_SPSCRINGBUFFER_H +#endif // IPC_SPSCRINGBUFFER_H diff --git a/app/render/job/CMakeLists.txt b/app/render/job/CMakeLists.txt index 58d8a225d..d8362864c 100644 --- a/app/render/job/CMakeLists.txt +++ b/app/render/job/CMakeLists.txt @@ -16,14 +16,14 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - render/job/acceleratedjob.cpp - render/job/acceleratedjob.h - render/job/footagejob.h - render/job/generatejob.h - render/job/samplejob.h - render/job/shaderjob.h - render/job/pluginjob.h - render/job/pluginjob.cpp + ${OLIVE_SOURCES} + render/job/acceleratedjob.cpp + render/job/acceleratedjob.h + render/job/footagejob.h + render/job/generatejob.h + render/job/samplejob.h + render/job/shaderjob.h + render/job/pluginjob.h + render/job/pluginjob.cpp PARENT_SCOPE ) diff --git a/app/render/job/pluginjob.cpp b/app/render/job/pluginjob.cpp index 20961d70d..000cfd068 100644 --- a/app/render/job/pluginjob.cpp +++ b/app/render/job/pluginjob.cpp @@ -19,7 +19,9 @@ #include "pluginjob.h" -namespace olive { -namespace plugin { +namespace olive +{ +namespace plugin +{ } // plugin } // olive \ No newline at end of file diff --git a/app/render/job/pluginjob.h b/app/render/job/pluginjob.h index 28831779b..985c303cc 100644 --- a/app/render/job/pluginjob.h +++ b/app/render/job/pluginjob.h @@ -26,47 +26,52 @@ #include #include -namespace olive { -namespace plugin { +namespace olive +{ +namespace plugin +{ -class PluginJob :public AcceleratedJob{ +class PluginJob : public AcceleratedJob { public: - explicit PluginJob(const OFX::Host::ImageEffect::Instance* pluginInstance, - const PluginNode* node, NodeValueRow row, + explicit PluginJob(const OFX::Host::ImageEffect::Instance *pluginInstance, + const PluginNode *node, NodeValueRow row, const olive::core::rational &time) : AcceleratedJob() , time_seconds_(time.toDouble()) { this->pluginInstance_ = pluginInstance; - this->node_=node; + this->node_ = node; Insert(row); } - explicit PluginJob(const OFX::Host::ImageEffect::Instance* pluginInstance, - const PluginNode* node, NodeValueRow row) + explicit PluginJob(const OFX::Host::ImageEffect::Instance *pluginInstance, + const PluginNode *node, NodeValueRow row) : PluginJob(pluginInstance, node, row, olive::core::rational(0)) { } - PluginNode *node() const { + PluginNode *node() const + { return const_cast(node_); } - OFX::Host::ImageEffect::Instance* pluginInstance() { - return const_cast(pluginInstance_); + OFX::Host::ImageEffect::Instance *pluginInstance() + { + return const_cast(pluginInstance_); } - double time_seconds() const { + double time_seconds() const + { return time_seconds_; } private: - const OFX::Host::ImageEffect::Instance *pluginInstance_=nullptr; + const OFX::Host::ImageEffect::Instance *pluginInstance_ = nullptr; QHash> paramsOnTime; QHash params; - const PluginNode *node_=nullptr; + const PluginNode *node_ = nullptr; double time_seconds_ = 0.0; }; diff --git a/app/render/ocioconf/CMakeLists.txt b/app/render/ocioconf/CMakeLists.txt index 51099b161..2bf7dc531 100644 --- a/app/render/ocioconf/CMakeLists.txt +++ b/app/render/ocioconf/CMakeLists.txt @@ -16,14 +16,14 @@ file(GLOB_RECURSE OCIOCONF_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.ocio *.spi3d *.spi1d) set(QRC_BODY "") -foreach(OCIOCONF_FILE ${OCIOCONF_RESOURCES}) - string(APPEND QRC_BODY "${OCIOCONF_FILE}\n") - configure_file(${OCIOCONF_FILE} ${OCIOCONF_FILE} COPYONLY) -endforeach() +foreach (OCIOCONF_FILE ${OCIOCONF_RESOURCES}) + string(APPEND QRC_BODY "${OCIOCONF_FILE}\n") + configure_file(${OCIOCONF_FILE} ${OCIOCONF_FILE} COPYONLY) +endforeach () configure_file(ocioconf.qrc.in ocioconf.qrc @ONLY) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - ${CMAKE_CURRENT_BINARY_DIR}/ocioconf.qrc - PARENT_SCOPE + ${OLIVE_RESOURCES} + ${CMAKE_CURRENT_BINARY_DIR}/ocioconf.qrc + PARENT_SCOPE ) diff --git a/app/render/opengl/CMakeLists.txt b/app/render/opengl/CMakeLists.txt index f5ab4f652..4920c5e23 100644 --- a/app/render/opengl/CMakeLists.txt +++ b/app/render/opengl/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - render/opengl/openglrenderer.cpp - render/opengl/openglrenderer.h - PARENT_SCOPE + ${OLIVE_SOURCES} + render/opengl/openglrenderer.cpp + render/opengl/openglrenderer.h + PARENT_SCOPE ) diff --git a/app/render/opengl/openglbackend_c.cpp b/app/render/opengl/openglbackend_c.cpp index c1896f739..754b1620b 100644 --- a/app/render/opengl/openglbackend_c.cpp +++ b/app/render/opengl/openglbackend_c.cpp @@ -10,7 +10,8 @@ #include "render/texture.h" #include "render/videoparams.h" -namespace { +namespace +{ class BackendOpenGLRenderer : public olive::OpenGLRenderer { public: @@ -39,29 +40,32 @@ const QVariant &VariantRef(const void *variant) } // namespace // Creates the backend object and returns it as an opaque C handle. -OAK_RENDER_BACKEND_EXPORT OakRenderBackendHandle oak_renderer_create(void *parent) +OAK_RENDER_BACKEND_EXPORT OakRenderBackendHandle +oak_renderer_create(void *parent) { return new BackendOpenGLRenderer(static_cast(parent)); } // Destroys the opaque backend object created by oak_renderer_create(). -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy(OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy(OakRenderBackendHandle handle) { delete Renderer(handle); } // Reports static OpenGL backend capabilities to the adapter. -OAK_RENDER_BACKEND_EXPORT bool oak_renderer_get_info( - OakRenderBackendHandle handle, OakRenderBackendInfo *out_info) +OAK_RENDER_BACKEND_EXPORT bool +oak_renderer_get_info(OakRenderBackendHandle handle, + OakRenderBackendInfo *out_info) { if (!handle || !out_info) { return false; } out_info->abi_version = 1; out_info->kind = OAK_RENDER_BACKEND_OPENGL; - out_info->capabilities = OAK_RENDER_BACKEND_CAP_TEXTURES | - OAK_RENDER_BACKEND_CAP_SHADERS | OAK_RENDER_BACKEND_CAP_BLIT | - OAK_RENDER_BACKEND_CAP_READBACK | + out_info->capabilities = + OAK_RENDER_BACKEND_CAP_TEXTURES | OAK_RENDER_BACKEND_CAP_SHADERS | + OAK_RENDER_BACKEND_CAP_BLIT | OAK_RENDER_BACKEND_CAP_READBACK | OAK_RENDER_BACKEND_CAP_VIEWER_CONTEXT; out_info->name = "opengl"; out_info->status = "available"; @@ -70,8 +74,8 @@ OAK_RENDER_BACKEND_EXPORT bool oak_renderer_get_info( // OpenGL availability is context-dependent, so object creation is the minimum // availability signal for this backend. -OAK_RENDER_BACKEND_EXPORT bool oak_renderer_is_available( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT bool +oak_renderer_is_available(OakRenderBackendHandle handle) { return handle != nullptr; } @@ -83,38 +87,40 @@ OAK_RENDER_BACKEND_EXPORT bool oak_renderer_init(OakRenderBackendHandle handle) } // Initializes the backend against a caller-owned viewer OpenGL context. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_init_with_context( - OakRenderBackendHandle handle, void *context) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_init_with_context(OakRenderBackendHandle handle, void *context) { Renderer(handle)->Init(static_cast(context)); } // Runs renderer post-initialization once the GL context is available. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_post_init(OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_post_init(OakRenderBackendHandle handle) { Renderer(handle)->PostInit(); } // Releases post-init OpenGL surface/context state. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_post_destroy(OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_post_destroy(OakRenderBackendHandle handle) { Renderer(handle)->PostDestroy(); } // Releases renderer-owned GL resources before object destruction. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy_internal( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy_internal(OakRenderBackendHandle handle) { Renderer(handle)->DestroyInternal(); } // Clears either the widget framebuffer or a texture destination. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_clear_destination( - OakRenderBackendHandle handle, void *texture, double r, double g, double b, - double a) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_clear_destination(OakRenderBackendHandle handle, void *texture, + double r, double g, double b, double a) { Renderer(handle)->ClearDestination(static_cast(texture), - r, g, b, a); + r, g, b, a); } // Creates an OpenGL texture and writes its QVariant handle to out_variant. @@ -122,51 +128,58 @@ OAK_RENDER_BACKEND_EXPORT void oak_renderer_create_native_texture( OakRenderBackendHandle handle, int width, int height, int depth, int format, int channel_count, const void *data, int linesize, void *out_variant) { - *static_cast(out_variant) = Renderer(handle)->CreateNativeTexture( - width, height, depth, static_cast(format), - channel_count, data, linesize); + *static_cast(out_variant) = + Renderer(handle)->CreateNativeTexture( + width, height, depth, + static_cast(format), channel_count, + data, linesize); } // Destroys an OpenGL texture represented by a QVariant handle. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy_native_texture( - OakRenderBackendHandle handle, const void *variant) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy_native_texture(OakRenderBackendHandle handle, + const void *variant) { Renderer(handle)->DestroyNativeTexture(VariantRef(variant)); } // Compiles an OpenGL shader program and returns its QVariant handle. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_create_native_shader( - OakRenderBackendHandle handle, const void *shader_code, void *out_variant) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_create_native_shader(OakRenderBackendHandle handle, + const void *shader_code, void *out_variant) { - *static_cast(out_variant) = Renderer(handle)->CreateNativeShader( - *static_cast(shader_code)); + *static_cast(out_variant) = + Renderer(handle)->CreateNativeShader( + *static_cast(shader_code)); } // Destroys an OpenGL shader program represented by a QVariant handle. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy_native_shader( - OakRenderBackendHandle handle, const void *variant) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy_native_shader(OakRenderBackendHandle handle, + const void *variant) { Renderer(handle)->DestroyNativeShader(VariantRef(variant)); } // Uploads CPU pixel data into an OpenGL texture. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_upload_to_texture( - OakRenderBackendHandle handle, const void *variant, const void *video_params, - const void *data, int linesize) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_upload_to_texture(OakRenderBackendHandle handle, + const void *variant, const void *video_params, + const void *data, int linesize) { Renderer(handle)->UploadToTexture( - VariantRef(variant), *static_cast(video_params), - data, linesize); + VariantRef(variant), + *static_cast(video_params), data, linesize); } // Reads an OpenGL texture back to CPU memory. OAK_RENDER_BACKEND_EXPORT void oak_renderer_download_from_texture( - OakRenderBackendHandle handle, const void *variant, const void *video_params, - void *data, int linesize) + OakRenderBackendHandle handle, const void *variant, + const void *video_params, void *data, int linesize) { Renderer(handle)->DownloadFromTexture( - VariantRef(variant), *static_cast(video_params), - data, linesize); + VariantRef(variant), + *static_cast(video_params), data, linesize); } // Flushes/waits for pending OpenGL work as required by the renderer. @@ -176,18 +189,23 @@ OAK_RENDER_BACKEND_EXPORT void oak_renderer_flush(OakRenderBackendHandle handle) } // Reads one pixel from an OpenGL texture. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_get_pixel_from_texture( - OakRenderBackendHandle handle, void *texture, const void *point, - void *out_color) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_get_pixel_from_texture(OakRenderBackendHandle handle, + void *texture, const void *point, + void *out_color) { - *static_cast(out_color) = Renderer(handle)->GetPixelFromTexture( - static_cast(texture), *static_cast(point)); + *static_cast(out_color) = + Renderer(handle)->GetPixelFromTexture( + static_cast(texture), + *static_cast(point)); } // Executes a shader blit through the wrapped C++ OpenGL renderer. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_blit( - OakRenderBackendHandle handle, const void *shader, void *job, - void *destination, const void *destination_params, bool clear_destination) +OAK_RENDER_BACKEND_EXPORT void oak_renderer_blit(OakRenderBackendHandle handle, + const void *shader, void *job, + void *destination, + const void *destination_params, + bool clear_destination) { Renderer(handle)->Blit( VariantRef(shader), *static_cast(job), @@ -197,22 +215,23 @@ OAK_RENDER_BACKEND_EXPORT void oak_renderer_blit( } // Exposes the wrapped OpenGL context for GL-specific integrations. -OAK_RENDER_BACKEND_EXPORT void *oak_renderer_opengl_context( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void * +oak_renderer_opengl_context(OakRenderBackendHandle handle) { return Renderer(handle)->context(); } // Binds an output texture for OFX OpenGL rendering. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_attach_output_texture( - OakRenderBackendHandle handle, const void *texture_id) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_attach_output_texture(OakRenderBackendHandle handle, + const void *texture_id) { Renderer(handle)->AttachTextureAsDestination(VariantRef(texture_id)); } // Detaches any OFX OpenGL output texture binding. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_detach_output_texture( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_detach_output_texture(OakRenderBackendHandle handle) { Renderer(handle)->DetachTextureAsDestination(); } diff --git a/app/render/opengl/openglrenderer.cpp b/app/render/opengl/openglrenderer.cpp index 01f875f4d..ef7ed021a 100644 --- a/app/render/opengl/openglrenderer.cpp +++ b/app/render/opengl/openglrenderer.cpp @@ -265,8 +265,8 @@ void OpenGLRenderer::AttachTextureAsDestination(const QVariant &texture) void OpenGLRenderer::DetachTextureAsDestination() { // QOpenGLWidget renders to a non-zero default FBO. - const GLuint default_fbo = - context_ ? context_->defaultFramebufferObject() : 0; + const GLuint default_fbo = context_ ? context_->defaultFramebufferObject() : + 0; functions_->glBindFramebuffer(GL_FRAMEBUFFER, default_fbo); } @@ -504,8 +504,8 @@ struct TextureToBind { Texture::Interpolation interpolation; }; -void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destination, - VideoParams destination_params, +void OpenGLRenderer::Blit(QVariant s, AcceleratedJob &a_job, + Texture *destination, VideoParams destination_params, bool clear_destination) { GL_PREAMBLE; @@ -519,7 +519,7 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio functions_->glBindFramebuffer(GL_FRAMEBUFFER, fbo); } - ShaderJob &s_job=dynamic_cast(a_job); + ShaderJob &s_job = dynamic_cast(a_job); ShaderJob job(s_job); // If this node is iterative, we'll pick up which input here QMap texture_index_map; @@ -585,7 +585,8 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio case NodeValue::kColor: { Color color = value.toColor(); functions_->glUniform4f(variable_location, color.red(), - color.green(), color.blue(), color.alpha()); + color.green(), color.blue(), + color.alpha()); break; } case NodeValue::kBoolean: @@ -595,7 +596,8 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio TexturePtr texture = value.toTexture(); // Set value to bound texture - functions_->glUniform1i(variable_location, textures_to_bind.size()); + functions_->glUniform1i(variable_location, + textures_to_bind.size()); texture_index_map.insert(it.key(), textures_to_bind.size()); @@ -605,8 +607,10 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio // Set enable flag if shader wants it GLuint tex_id = texture ? texture->id().value() : 0; int enable_param_location = functions_->glGetUniformLocation( - shader, - QStringLiteral("%1_enabled").arg(it.key()).toUtf8().constData()); + shader, QStringLiteral("%1_enabled") + .arg(it.key()) + .toUtf8() + .constData()); if (enable_param_location > -1) { functions_->glUniform1i(enable_param_location, tex_id > 0); } @@ -637,8 +641,9 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio functions_->glActiveTexture(GL_TEXTURE0 + i); - GLenum target = (texture && texture->params().is_3d()) ? GL_TEXTURE_3D : - GL_TEXTURE_2D; + GLenum target = (texture && texture->params().is_3d()) ? + GL_TEXTURE_3D : + GL_TEXTURE_2D; functions_->glBindTexture(target, tex_id); if (tex_id) { @@ -647,12 +652,12 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio if (texture->channel_count() == 1 && destination_params.channel_count() != 1) { // Interpret this texture as a grayscale texture - functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, - GL_RED); - functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, - GL_RED); - functions_->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, - GL_RED); + functions_->glTexParameteri(GL_TEXTURE_2D, + GL_TEXTURE_SWIZZLE_R, GL_RED); + functions_->glTexParameteri(GL_TEXTURE_2D, + GL_TEXTURE_SWIZZLE_G, GL_RED); + functions_->glTexParameteri(GL_TEXTURE_2D, + GL_TEXTURE_SWIZZLE_B, GL_RED); } } } @@ -683,7 +688,8 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio if (!job.GetVertexCoordinates().isEmpty()) { Q_ASSERT(job.GetVertexCoordinates().size() == 18); vert_vbo_.allocate(job.GetVertexCoordinates().constData(), - job.GetVertexCoordinates().size() * sizeof(float)); + job.GetVertexCoordinates().size() * + sizeof(float)); } else { vert_vbo_.allocate(blit_vertices.constData(), blit_vertices.size() * sizeof(GLfloat)); @@ -707,12 +713,13 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio vert_vbo_.release(); } - GLint tex_location = functions_->glGetAttribLocation(shader, "a_texcoord"); + GLint tex_location = + functions_->glGetAttribLocation(shader, "a_texcoord"); if (tex_location != -1) { frag_vbo_.bind(); functions_->glEnableVertexAttribArray(tex_location); - functions_->glVertexAttribPointer(tex_location, 2, GL_FLOAT, GL_FALSE, - 0, nullptr); + functions_->glVertexAttribPointer(tex_location, 2, GL_FLOAT, + GL_FALSE, 0, nullptr); frag_vbo_.release(); } @@ -788,9 +795,9 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio // Blit this texture through this shader { PRINT_GL_ERRORS; - functions_->glDrawArrays(GL_TRIANGLES, 0, blit_vertices.size() / 3); + functions_->glDrawArrays(GL_TRIANGLES, 0, + blit_vertices.size() / 3); } - } if (destination) { @@ -801,8 +808,9 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio // Release any textures we bound before for (int i = textures_to_bind.size() - 1; i >= 0; i--) { TexturePtr texture = textures_to_bind.at(i).texture; - GLenum target = (texture && texture->params().is_3d()) ? GL_TEXTURE_3D : - GL_TEXTURE_2D; + GLenum target = (texture && texture->params().is_3d()) ? + GL_TEXTURE_3D : + GL_TEXTURE_2D; functions_->glActiveTexture(GL_TEXTURE0 + i); functions_->glBindTexture(target, 0); } @@ -815,9 +823,8 @@ void OpenGLRenderer::Blit(QVariant s, AcceleratedJob& a_job, Texture *destinatio vert_vbo_.destroy(); vao_.release(); vao_.destroy(); + } catch (std::bad_cast e) { } - catch (std::bad_cast e){} - } GLint OpenGLRenderer::GetInternalFormat(PixelFormat format, int channel_layout) @@ -965,12 +972,12 @@ GLuint OpenGLRenderer::CompileShader(GLenum type, const QString &code) const int major = context_ ? context_->format().majorVersion() : 0; const int minor = context_ ? context_->format().minorVersion() : 0; const bool is_gles2 = is_gles && (major < 3); - const QString gles_preamble = is_gles2 - ? QStringLiteral("#version 100\n\n" - "precision highp float;\n\n" - "#define frag_color gl_FragColor\n") - : QStringLiteral("#version 300 es\n\n" - "precision highp float;\n\n"); + const QString gles_preamble = + is_gles2 ? QStringLiteral("#version 100\n\n" + "precision highp float;\n\n" + "#define frag_color gl_FragColor\n") : + QStringLiteral("#version 300 es\n\n" + "precision highp float;\n\n"); const QString desktop_preamble = // Use appropriate GL 3.2 shader header QStringLiteral("#version 150\n\n" @@ -991,7 +998,8 @@ GLuint OpenGLRenderer::CompileShader(GLenum type, const QString &code) QString complete_code; if (base_code.startsWith(QStringLiteral("#version"))) { - if (is_gles || !desktop_preamble.startsWith(QStringLiteral("#version"))) { + if (is_gles || + !desktop_preamble.startsWith(QStringLiteral("#version"))) { int newline = base_code.indexOf('\n'); if (newline >= 0) { complete_code = shader_preamble + base_code.mid(newline + 1); @@ -1007,18 +1015,22 @@ GLuint OpenGLRenderer::CompileShader(GLenum type, const QString &code) if (is_gles2) { if (type == GL_VERTEX_SHADER) { - complete_code.replace(QRegularExpression(QStringLiteral("\\bin\\b")), - QStringLiteral("attribute")); - complete_code.replace(QRegularExpression(QStringLiteral("\\bout\\b")), - QStringLiteral("varying")); + complete_code.replace( + QRegularExpression(QStringLiteral("\\bin\\b")), + QStringLiteral("attribute")); + complete_code.replace( + QRegularExpression(QStringLiteral("\\bout\\b")), + QStringLiteral("varying")); } else if (type == GL_FRAGMENT_SHADER) { - complete_code.replace(QRegularExpression(QStringLiteral("\\bin\\b")), - QStringLiteral("varying")); - complete_code.replace(QRegularExpression( - QStringLiteral("\\bout\\s+vec4\\s+frag_color\\s*;")), + complete_code.replace( + QRegularExpression(QStringLiteral("\\bin\\b")), + QStringLiteral("varying")); + complete_code.replace(QRegularExpression(QStringLiteral( + "\\bout\\s+vec4\\s+frag_color\\s*;")), QStringLiteral("// frag_color output")); - complete_code.replace(QRegularExpression(QStringLiteral("\\btexture\\b")), - QStringLiteral("texture2D")); + complete_code.replace( + QRegularExpression(QStringLiteral("\\btexture\\b")), + QStringLiteral("texture2D")); } } @@ -1058,7 +1070,8 @@ bool OpenGLRenderer::EnsureContextCurrent(const char *caller) // paint code can receive textures produced by a render-thread OpenGL // renderer, so guard here before makeCurrent() can crash inside Qt/GL. if (context_->thread() != QThread::currentThread()) { - qWarning() << caller << "called from the wrong thread for this OpenGL context"; + qWarning() + << caller << "called from the wrong thread for this OpenGL context"; return false; } diff --git a/app/render/opengl/openglrenderer.h b/app/render/opengl/openglrenderer.h index 327a58ce8..42b77f401 100644 --- a/app/render/opengl/openglrenderer.h +++ b/app/render/opengl/openglrenderer.h @@ -94,7 +94,7 @@ public: bool EnsureContextCurrent(const char *caller); protected: - virtual void Blit(QVariant shader, olive::AcceleratedJob& job, + virtual void Blit(QVariant shader, olive::AcceleratedJob &job, olive::Texture *destination, olive::VideoParams destination_params, bool clear_destination) override; diff --git a/app/render/plugin/pluginrenderer.cpp b/app/render/plugin/pluginrenderer.cpp index 550ae461d..03decea34 100644 --- a/app/render/plugin/pluginrenderer.cpp +++ b/app/render/plugin/pluginrenderer.cpp @@ -51,20 +51,22 @@ #include "ofxhUtilities.h" #include "ofxGPURender.h" #include "olive/core/util/color.h" -extern "C"{ +extern "C" { #include #include #include } - // 作用:从 OFX Image 属性推导 FFmpeg 像素格式,并返回每像素字节数。 // Purpose: Infer FFmpeg pixel format from OFX image properties and return bytes-per-pixel. -static AVPixelFormat GetOfxAVPixelFormat(const OFX::Host::ImageEffect::Image &image, - int *bytes_per_pixel) +static AVPixelFormat +GetOfxAVPixelFormat(const OFX::Host::ImageEffect::Image &image, + int *bytes_per_pixel) { - const std::string &depth = image.getStringProperty(kOfxImageEffectPropPixelDepth); - const std::string &components = image.getStringProperty(kOfxImageEffectPropComponents); + const std::string &depth = + image.getStringProperty(kOfxImageEffectPropPixelDepth); + const std::string &components = + image.getStringProperty(kOfxImageEffectPropComponents); olive::core::PixelFormat pixel_format = olive::core::PixelFormat::INVALID; if (depth == kOfxBitDepthByte) { @@ -86,7 +88,8 @@ static AVPixelFormat GetOfxAVPixelFormat(const OFX::Host::ImageEffect::Image &im channel_count = 1; } - AVPixelFormat pix_fmt = olive::FFmpegUtils::GetFFmpegPixelFormat(pixel_format, channel_count); + AVPixelFormat pix_fmt = + olive::FFmpegUtils::GetFFmpegPixelFormat(pixel_format, channel_count); if (pix_fmt == AV_PIX_FMT_NONE && channel_count == 1) { if (pixel_format == olive::core::PixelFormat::U8) { pix_fmt = AV_PIX_FMT_GRAY8; @@ -123,8 +126,7 @@ static AVPixelFormat GetOfxAVPixelFormat(const OFX::Host::ImageEffect::Image &im // 作用:为插件实例注入当前帧的参数值,避免依赖节点实时回读。 static void ApplyParamOverrides(OFX::Host::ImageEffect::Instance &instance, - const olive::NodeValueRow &values, - OfxTime time) + const olive::NodeValueRow &values, OfxTime time) { const auto ¶ms = instance.getParams(); for (const auto &entry : params) { @@ -144,17 +146,15 @@ static void ApplyParamOverrides(OFX::Host::ImageEffect::Instance &instance, const std::string &type = entry.second->getType(); if (type == kOfxParamTypeInteger) { - if (auto *param = - dynamic_cast( - entry.second)) { + if (auto *param = dynamic_cast( + entry.second)) { param->set(time, value.data().toInt()); } continue; } if (type == kOfxParamTypeDouble) { - if (auto *param = - dynamic_cast( - entry.second)) { + if (auto *param = dynamic_cast( + entry.second)) { double v = value.data().toDouble(); if (std::isnan(v) || std::isinf(v)) { qWarning() << "[PLUGIN] NaN/Inf in double param" << key @@ -181,35 +181,31 @@ static void ApplyParamOverrides(OFX::Host::ImageEffect::Instance &instance, continue; } if (type == kOfxParamTypeBoolean) { - if (auto *param = - dynamic_cast( - entry.second)) { + if (auto *param = dynamic_cast( + entry.second)) { param->set(time, value.data().toBool()); } continue; } if (type == kOfxParamTypeChoice) { - if (auto *param = - dynamic_cast( - entry.second)) { + if (auto *param = dynamic_cast( + entry.second)) { param->set(time, value.data().toInt()); } continue; } if (type == kOfxParamTypeString || type == kOfxParamTypeCustom || type == kOfxParamTypeBytes || type == kOfxParamTypeStrChoice) { - if (auto *param = - dynamic_cast( - entry.second)) { + if (auto *param = dynamic_cast( + entry.second)) { const QByteArray utf8 = value.data().toString().toUtf8(); param->set(time, utf8.constData()); } continue; } if (type == kOfxParamTypeRGBA) { - if (auto *param = - dynamic_cast( - entry.second)) { + if (auto *param = dynamic_cast( + entry.second)) { if (value.data().canConvert()) { const auto c = value.data().value(); param->set(time, c.red(), c.green(), c.blue(), c.alpha()); @@ -224,9 +220,8 @@ static void ApplyParamOverrides(OFX::Host::ImageEffect::Instance &instance, continue; } if (type == kOfxParamTypeRGB) { - if (auto *param = - dynamic_cast( - entry.second)) { + if (auto *param = dynamic_cast( + entry.second)) { if (value.data().canConvert()) { const auto c = value.data().value(); param->set(time, c.red(), c.green(), c.blue()); @@ -290,13 +285,14 @@ static void ApplyParamOverrides(OFX::Host::ImageEffect::Instance &instance, } } -static AVPixelFormat GetDestinationAVPixelFormat(const olive::VideoParams ¶ms); +static AVPixelFormat +GetDestinationAVPixelFormat(const olive::VideoParams ¶ms); // 作用:读取 clip 偏好(像素深度与分量)并更新 VideoParams。 // Purpose: Apply clip preferences (depth/components) into VideoParams. -static bool ApplyClipPreferencesToParams( - const OFX::Host::ImageEffect::ClipInstance &clip, - olive::VideoParams *params) +static bool +ApplyClipPreferencesToParams(const OFX::Host::ImageEffect::ClipInstance &clip, + olive::VideoParams *params) { if (!params) { return false; @@ -335,8 +331,8 @@ static bool ApplyClipPreferencesToParams( // 作用:将 OFX bit depth 字符串映射为内部 PixelFormat。 // Purpose: Map OFX bit depth string to internal PixelFormat. -static olive::core::PixelFormat PixelFormatFromOfxDepth( - const std::string &depth) +static olive::core::PixelFormat +PixelFormatFromOfxDepth(const std::string &depth) { if (depth == kOfxBitDepthByte) { return olive::core::PixelFormat::U8; @@ -408,9 +404,9 @@ static const char *OfxComponentsFromChannels(int channel_count) // 作用:判断插件是否支持指定像素深度。 // Purpose: Check whether effect supports a given pixel depth. -static bool EffectSupportsPixelDepth( - const OFX::Host::ImageEffect::Instance &instance, - const std::string &depth) +static bool +EffectSupportsPixelDepth(const OFX::Host::ImageEffect::Instance &instance, + const std::string &depth) { const auto &effect_props = instance.getDescriptor().getProps(); const int depth_count = @@ -426,9 +422,9 @@ static bool EffectSupportsPixelDepth( // 作用:判断 clip 是否支持指定组件格式。 // Purpose: Check whether clip supports a given components string. -static bool ClipSupportsComponents( - const OFX::Host::ImageEffect::ClipInstance &clip, - const std::string &components) +static bool +ClipSupportsComponents(const OFX::Host::ImageEffect::ClipInstance &clip, + const std::string &components) { const auto &supported_components = clip.getSupportedComponents(); for (const auto &comp : supported_components) { @@ -465,11 +461,11 @@ static bool ParamsConvertible(const olive::VideoParams ¶ms) // 作用:在 clip 偏好无效时,选择一个插件支持的输出格式。 // Purpose: Pick a supported output format when clip preferences are invalid. -static void ChooseSupportedOutputParams( - const OFX::Host::ImageEffect::Instance &instance, - const OFX::Host::ImageEffect::ClipInstance &clip, - const olive::VideoParams &preferred, - olive::VideoParams *out) +static void +ChooseSupportedOutputParams(const OFX::Host::ImageEffect::Instance &instance, + const OFX::Host::ImageEffect::ClipInstance &clip, + const olive::VideoParams &preferred, + olive::VideoParams *out) { if (!out) { return; @@ -502,8 +498,8 @@ static void ChooseSupportedOutputParams( if (candidate == olive::core::PixelFormat::INVALID) { continue; } - if (!EffectSupportsPixelDepth( - instance, OfxDepthFromPixelFormat(candidate))) { + if (!EffectSupportsPixelDepth(instance, + OfxDepthFromPixelFormat(candidate))) { continue; } olive::VideoParams test_params = *out; @@ -517,21 +513,22 @@ static void ChooseSupportedOutputParams( } // Forward declarations for functions defined later in this file. -static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, - const olive::VideoParams &dst_params, - olive::Renderer *renderer); -static olive::TexturePtr ConvertTextureForParams(olive::TexturePtr src, - const olive::VideoParams &dst_params); +static olive::AVFramePtr +ConvertFrameIfNeeded(olive::AVFramePtr src, + const olive::VideoParams &dst_params, + olive::Renderer *renderer); +static olive::TexturePtr +ConvertTextureForParams(olive::TexturePtr src, + const olive::VideoParams &dst_params); // 作用:根据插件能力与偏好选择输入格式并执行转换。 // Purpose: Select a supported input format and convert texture for the clip. -static olive::TexturePtr ConvertTextureForClip( - const OFX::Host::ImageEffect::Instance &instance, - const OFX::Host::ImageEffect::ClipInstance &clip, - olive::TexturePtr src, - const olive::VideoParams &preferred_params, - bool force_preferred, - olive::VideoParams *out_params) +static olive::TexturePtr +ConvertTextureForClip(const OFX::Host::ImageEffect::Instance &instance, + const OFX::Host::ImageEffect::ClipInstance &clip, + olive::TexturePtr src, + const olive::VideoParams &preferred_params, + bool force_preferred, olive::VideoParams *out_params) { if (!src || !out_params) { return nullptr; @@ -554,8 +551,7 @@ static olive::TexturePtr ConvertTextureForClip( for (const auto &comp : supported_components) { int channels = ChannelCountFromOfxComponent(comp); if (channels > 0 && - std::find(channel_candidates.begin(), - channel_candidates.end(), + std::find(channel_candidates.begin(), channel_candidates.end(), channels) == channel_candidates.end()) { channel_candidates.push_back(channels); } @@ -573,8 +569,7 @@ static olive::TexturePtr ConvertTextureForClip( PixelFormatFromOfxDepth(effect_props.getStringProperty( kOfxImageEffectPropSupportedPixelDepths, i)); if (fmt != olive::core::PixelFormat::INVALID && - std::find(format_candidates.begin(), - format_candidates.end(), + std::find(format_candidates.begin(), format_candidates.end(), fmt) == format_candidates.end()) { format_candidates.push_back(fmt); } @@ -620,40 +615,43 @@ static olive::TexturePtr ConvertTextureForClip( return nullptr; } - std::stable_sort(candidates.begin(), candidates.end(), - [&src_params, &preferred_params, prefer_rgba8, force_preferred](const auto &a, - const auto &b) { - if (force_preferred) { - const bool a_pref = (a.format() == preferred_params.format() && - a.channel_count() == preferred_params.channel_count()); - const bool b_pref = (b.format() == preferred_params.format() && - b.channel_count() == preferred_params.channel_count()); - if (a_pref != b_pref) { - return a_pref; + std::stable_sort( + candidates.begin(), candidates.end(), + [&src_params, &preferred_params, prefer_rgba8, + force_preferred](const auto &a, const auto &b) { + if (force_preferred) { + const bool a_pref = + (a.format() == preferred_params.format() && + a.channel_count() == preferred_params.channel_count()); + const bool b_pref = + (b.format() == preferred_params.format() && + b.channel_count() == preferred_params.channel_count()); + if (a_pref != b_pref) { + return a_pref; + } } - } - if (prefer_rgba8) { - const bool a_rgba8 = - a.format() == olive::core::PixelFormat::U8 && - a.channel_count() == 4; - const bool b_rgba8 = - b.format() == olive::core::PixelFormat::U8 && - b.channel_count() == 4; - if (a_rgba8 != b_rgba8) { - return a_rgba8; + if (prefer_rgba8) { + const bool a_rgba8 = a.format() == + olive::core::PixelFormat::U8 && + a.channel_count() == 4; + const bool b_rgba8 = b.format() == + olive::core::PixelFormat::U8 && + b.channel_count() == 4; + if (a_rgba8 != b_rgba8) { + return a_rgba8; + } } - } - const int cost_a = ConversionCost(src_params, a); - const int cost_b = ConversionCost(src_params, b); - if (cost_a != cost_b) { - return cost_a < cost_b; - } - if (a.format() == preferred_params.format() && - a.channel_count() == preferred_params.channel_count()) { - return true; - } - return false; - }); + const int cost_a = ConversionCost(src_params, a); + const int cost_b = ConversionCost(src_params, b); + if (cost_a != cost_b) { + return cost_a < cost_b; + } + if (a.format() == preferred_params.format() && + a.channel_count() == preferred_params.channel_count()) { + return true; + } + return false; + }); for (const auto &candidate : candidates) { if (candidate.format() == src_params.format() && @@ -661,8 +659,7 @@ static olive::TexturePtr ConvertTextureForClip( *out_params = src_params; return src; } - olive::TexturePtr converted = - ConvertTextureForParams(src, candidate); + olive::TexturePtr converted = ConvertTextureForParams(src, candidate); if (converted) { *out_params = candidate; return converted; @@ -674,7 +671,8 @@ static olive::TexturePtr ConvertTextureForClip( // 作用:从 OFX Image 复制数据到 AVFrame(按图像属性推导格式)。 // Purpose: Copy OFX Image data into an AVFrame with inferred format. -static olive::AVFramePtr create_avframe_from_ofx_image(OFX::Host::ImageEffect::Image &image) +static olive::AVFramePtr +create_avframe_from_ofx_image(OFX::Host::ImageEffect::Image &image) { void *data_ptr = image.getPointerProperty(kOfxImagePropData); if (!data_ptr) { @@ -682,14 +680,14 @@ static olive::AVFramePtr create_avframe_from_ofx_image(OFX::Host::ImageEffect::I return nullptr; } - int bounds[4] = {0, 0, 0, 0}; + int bounds[4] = { 0, 0, 0, 0 }; image.getIntPropertyN(kOfxImagePropBounds, bounds, 4); int width = bounds[2] - bounds[0]; int height = bounds[3] - bounds[1]; if (width <= 0 || height <= 0) { qWarning().noquote() - << "OFX output image has invalid bounds" - << bounds[0] << bounds[1] << bounds[2] << bounds[3]; + << "OFX output image has invalid bounds" << bounds[0] << bounds[1] + << bounds[2] << bounds[3]; return nullptr; } @@ -698,8 +696,8 @@ static olive::AVFramePtr create_avframe_from_ofx_image(OFX::Host::ImageEffect::I if (pix_fmt == AV_PIX_FMT_NONE || bytes_per_pixel <= 0) { qWarning().noquote() << "OFX output image has unsupported pixel format depth=" - << QString::fromStdString(image.getStringProperty( - kOfxImageEffectPropPixelDepth)) + << QString::fromStdString( + image.getStringProperty(kOfxImageEffectPropPixelDepth)) << "components=" << QString::fromStdString( image.getStringProperty(kOfxImageEffectPropComponents)); @@ -729,8 +727,7 @@ static olive::AVFramePtr create_avframe_from_ofx_image(OFX::Host::ImageEffect::I } else { for (int y = 0; y < height; ++y) { std::memcpy(frame->data[0] + y * frame->linesize[0], - src + y * row_bytes, - copy_bytes); + src + y * row_bytes, copy_bytes); } } @@ -742,17 +739,17 @@ static olive::AVFramePtr create_avframe_from_ofx_image(OFX::Host::ImageEffect::I // 作用:按指定 VideoParams 复制 OFX Image 到 AVFrame,必要时做格式转换。 // Purpose: Copy OFX Image data into an AVFrame using target VideoParams with format conversion. -static olive::AVFramePtr create_avframe_from_ofx_image_with_params( - OFX::Host::ImageEffect::Image &image, - const olive::VideoParams ¶ms, - olive::Renderer *renderer = nullptr) +static olive::AVFramePtr +create_avframe_from_ofx_image_with_params(OFX::Host::ImageEffect::Image &image, + const olive::VideoParams ¶ms, + olive::Renderer *renderer = nullptr) { void *data_ptr = image.getPointerProperty(kOfxImagePropData); if (!data_ptr) { return nullptr; } - int bounds[4] = {0, 0, 0, 0}; + int bounds[4] = { 0, 0, 0, 0 }; image.getIntPropertyN(kOfxImagePropBounds, bounds, 4); int width = bounds[2] - bounds[0]; int height = bounds[3] - bounds[1]; @@ -761,22 +758,30 @@ static olive::AVFramePtr create_avframe_from_ofx_image_with_params( } // Get ACTUAL source format from image properties - std::string image_depth = image.getStringProperty(kOfxImageEffectPropPixelDepth); - std::string image_comp = image.getStringProperty(kOfxImageEffectPropComponents); + std::string image_depth = + image.getStringProperty(kOfxImageEffectPropPixelDepth); + std::string image_comp = + image.getStringProperty(kOfxImageEffectPropComponents); int src_channel_count = 4; - if (image_comp == kOfxImageComponentRGB) src_channel_count = 3; - else if (image_comp == kOfxImageComponentAlpha) src_channel_count = 1; + if (image_comp == kOfxImageComponentRGB) + src_channel_count = 3; + else if (image_comp == kOfxImageComponentAlpha) + src_channel_count = 1; // NOTE: FP16 (Half) format handling has been removed. // FP16 data is now treated as U16 (2 bytes per component) and converted via FFmpeg. int src_bytes_per_component = 1; - if (image_depth == kOfxBitDepthShort) src_bytes_per_component = 2; - else if (image_depth == kOfxBitDepthHalf) src_bytes_per_component = 2; // Treat as U16 - else if (image_depth == kOfxBitDepthFloat) src_bytes_per_component = 4; + if (image_depth == kOfxBitDepthShort) + src_bytes_per_component = 2; + else if (image_depth == kOfxBitDepthHalf) + src_bytes_per_component = 2; // Treat as U16 + else if (image_depth == kOfxBitDepthFloat) + src_bytes_per_component = 4; const int src_bytes_per_pixel = src_channel_count * src_bytes_per_component; - const int dst_bytes_per_pixel = params.channel_count() * params.format().byte_count(); + const int dst_bytes_per_pixel = + params.channel_count() * params.format().byte_count(); int row_bytes = image.getIntProperty(kOfxImagePropRowBytes); if (row_bytes <= 0) { @@ -795,31 +800,38 @@ static olive::AVFramePtr create_avframe_from_ofx_image_with_params( AVPixelFormat src_fmt = AV_PIX_FMT_NONE; if (src_channel_count == 4) { - if (src_bytes_per_component == 1) src_fmt = AV_PIX_FMT_RGBA; - else if (src_bytes_per_component == 2) src_fmt = AV_PIX_FMT_RGBA64LE; - else if (src_bytes_per_component == 4) src_fmt = AV_PIX_FMT_RGBAF32LE; + if (src_bytes_per_component == 1) + src_fmt = AV_PIX_FMT_RGBA; + else if (src_bytes_per_component == 2) + src_fmt = AV_PIX_FMT_RGBA64LE; + else if (src_bytes_per_component == 4) + src_fmt = AV_PIX_FMT_RGBAF32LE; } else if (src_channel_count == 3) { - if (src_bytes_per_component == 1) src_fmt = AV_PIX_FMT_RGB24; - else if (src_bytes_per_component == 2) src_fmt = AV_PIX_FMT_RGB48LE; - else if (src_bytes_per_component == 4) src_fmt = AV_PIX_FMT_RGBF32LE; + if (src_bytes_per_component == 1) + src_fmt = AV_PIX_FMT_RGB24; + else if (src_bytes_per_component == 2) + src_fmt = AV_PIX_FMT_RGB48LE; + else if (src_bytes_per_component == 4) + src_fmt = AV_PIX_FMT_RGBF32LE; } else if (src_channel_count == 1) { - if (src_bytes_per_component == 1) src_fmt = AV_PIX_FMT_GRAY8; - else if (src_bytes_per_component == 2) src_fmt = AV_PIX_FMT_GRAY16LE; - else if (src_bytes_per_component == 4) src_fmt = AV_PIX_FMT_GRAYF32LE; + if (src_bytes_per_component == 1) + src_fmt = AV_PIX_FMT_GRAY8; + else if (src_bytes_per_component == 2) + src_fmt = AV_PIX_FMT_GRAY16LE; + else if (src_bytes_per_component == 4) + src_fmt = AV_PIX_FMT_GRAYF32LE; } - - if (src_fmt != AV_PIX_FMT_NONE) { olive::AVFramePtr src_frame = olive::CreateAVFramePtr(); src_frame->width = width; src_frame->height = height; src_frame->format = src_fmt; if (av_frame_get_buffer(src_frame.get(), 0) >= 0) { - // Copy source data row by row (or as a single block if strides match) const int copy_bytes = width * src_bytes_per_pixel; - if (src_frame->linesize[0] == row_bytes && row_bytes == copy_bytes) { + if (src_frame->linesize[0] == row_bytes && + row_bytes == copy_bytes) { memcpy(src_frame->data[0], src, copy_bytes * height); } else { for (int y = 0; y < height; ++y) { @@ -830,11 +842,13 @@ static olive::AVFramePtr create_avframe_from_ofx_image_with_params( // Convert to destination format return ConvertFrameIfNeeded(src_frame, params, renderer); } else { - qWarning().noquote() << "[WARN] av_frame_get_buffer failed for src_fmt=" << src_fmt; + qWarning().noquote() + << "[WARN] av_frame_get_buffer failed for src_fmt=" + << src_fmt; } } else { - qWarning().noquote() - << "[WARN] src_fmt is NONE for depth=" << QString::fromStdString(image_depth); + qWarning().noquote() << "[WARN] src_fmt is NONE for depth=" + << QString::fromStdString(image_depth); } } @@ -853,10 +867,11 @@ static olive::AVFramePtr create_avframe_from_ofx_image_with_params( return nullptr; } - const int copy_bytes = width * std::min(src_bytes_per_pixel, dst_bytes_per_pixel); + const int copy_bytes = + width * std::min(src_bytes_per_pixel, dst_bytes_per_pixel); for (int y = 0; y < height; ++y) { - memcpy(frame->data[0] + y * frame->linesize[0], - src + y * row_bytes, copy_bytes); + memcpy(frame->data[0] + y * frame->linesize[0], src + y * row_bytes, + copy_bytes); } return frame; @@ -864,11 +879,11 @@ static olive::AVFramePtr create_avframe_from_ofx_image_with_params( // 作用:将 VideoParams 映射为最终输出的 AVPixelFormat。 // Purpose: Map VideoParams to the final AVPixelFormat. -static AVPixelFormat GetDestinationAVPixelFormat(const olive::VideoParams ¶ms) +static AVPixelFormat +GetDestinationAVPixelFormat(const olive::VideoParams ¶ms) { - AVPixelFormat pix_fmt = - olive::FFmpegUtils::GetFFmpegPixelFormat(params.format(), - params.channel_count()); + AVPixelFormat pix_fmt = olive::FFmpegUtils::GetFFmpegPixelFormat( + params.format(), params.channel_count()); if (pix_fmt == AV_PIX_FMT_NONE && params.channel_count() == 1) { if (params.format() == olive::core::PixelFormat::U8) { pix_fmt = AV_PIX_FMT_GRAY8; @@ -903,8 +918,9 @@ static const char *GetRenderFieldForParams(const olive::VideoParams ¶ms) // 作用:从 GPU 纹理回读到 AVFrame(必要时做格式转换)。 // Purpose: Read back GPU texture into AVFrame with format conversion if needed. -static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, - const olive::VideoParams ¶ms) +static olive::AVFramePtr +ReadbackTextureToFrame(olive::TexturePtr texture, + const olive::VideoParams ¶ms) { if (!texture || texture->IsDummy()) { return nullptr; @@ -930,9 +946,8 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, } if (texture->renderer()) { - const int linesize_pixels = - olive::plugin::detail::BytesToPixels(frame->linesize[0], - params); + const int linesize_pixels = olive::plugin::detail::BytesToPixels( + frame->linesize[0], params); texture->renderer()->DownloadFromTexture( texture->id(), params, frame->data[0], linesize_pixels); } @@ -940,9 +955,10 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, } // Planar formats: read back as RGBA and convert. - olive::VideoParams rgba_params( - params.width(), params.height(), olive::core::PixelFormat::U8, 4, - params.pixel_aspect_ratio(), params.interlacing(), params.divider()); + olive::VideoParams rgba_params(params.width(), params.height(), + olive::core::PixelFormat::U8, 4, + params.pixel_aspect_ratio(), + params.interlacing(), params.divider()); olive::AVFramePtr rgba_frame = olive::CreateAVFramePtr(); rgba_frame->format = AV_PIX_FMT_RGBA; @@ -953,9 +969,8 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, } if (texture->renderer()) { - const int linesize_pixels = - olive::plugin::detail::BytesToPixels(rgba_frame->linesize[0], - rgba_params); + const int linesize_pixels = olive::plugin::detail::BytesToPixels( + rgba_frame->linesize[0], rgba_params); texture->renderer()->DownloadFromTexture( texture->id(), rgba_params, rgba_frame->data[0], linesize_pixels); } @@ -970,9 +985,8 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, SwsContext *sws_ctx = sws_getContext( rgba_frame->width, rgba_frame->height, - static_cast(rgba_frame->format), - dst->width, dst->height, pix_fmt, SWS_POINT, - nullptr, nullptr, nullptr); + static_cast(rgba_frame->format), dst->width, dst->height, + pix_fmt, SWS_POINT, nullptr, nullptr, nullptr); if (!sws_ctx) { return rgba_frame; } @@ -989,9 +1003,8 @@ static olive::AVFramePtr ReadbackTextureToFrame(olive::TexturePtr texture, int olive::plugin::detail::BytesToPixels(int byte_linesize, const olive::VideoParams ¶ms) { - const int bytes_per_pixel = - olive::VideoParams::GetBytesPerPixel(params.format(), - params.channel_count()); + const int bytes_per_pixel = olive::VideoParams::GetBytesPerPixel( + params.format(), params.channel_count()); if (byte_linesize <= 0 || bytes_per_pixel <= 0) { return 0; } @@ -999,44 +1012,66 @@ int olive::plugin::detail::BytesToPixels(int byte_linesize, } // 作用:将 AVPixelFormat 映射为 Olive 的 PixelFormat 和通道数(仅常见 packed 格式)。 -static void GetOliveFormatFromAV(AVPixelFormat fmt, olive::core::PixelFormat *out_fmt, int *out_ch) +static void GetOliveFormatFromAV(AVPixelFormat fmt, + olive::core::PixelFormat *out_fmt, int *out_ch) { switch (fmt) { case AV_PIX_FMT_GRAY8: - *out_fmt = olive::core::PixelFormat::U8; *out_ch = 1; return; + *out_fmt = olive::core::PixelFormat::U8; + *out_ch = 1; + return; case AV_PIX_FMT_RGB24: - *out_fmt = olive::core::PixelFormat::U8; *out_ch = 3; return; + *out_fmt = olive::core::PixelFormat::U8; + *out_ch = 3; + return; case AV_PIX_FMT_RGBA: - *out_fmt = olive::core::PixelFormat::U8; *out_ch = 4; return; + *out_fmt = olive::core::PixelFormat::U8; + *out_ch = 4; + return; case AV_PIX_FMT_GRAY16LE: case AV_PIX_FMT_GRAY16BE: - *out_fmt = olive::core::PixelFormat::U16; *out_ch = 1; return; + *out_fmt = olive::core::PixelFormat::U16; + *out_ch = 1; + return; case AV_PIX_FMT_RGB48LE: case AV_PIX_FMT_RGB48BE: - *out_fmt = olive::core::PixelFormat::U16; *out_ch = 3; return; + *out_fmt = olive::core::PixelFormat::U16; + *out_ch = 3; + return; case AV_PIX_FMT_RGBA64LE: case AV_PIX_FMT_RGBA64BE: - *out_fmt = olive::core::PixelFormat::U16; *out_ch = 4; return; + *out_fmt = olive::core::PixelFormat::U16; + *out_ch = 4; + return; case AV_PIX_FMT_GRAYF32LE: case AV_PIX_FMT_GRAYF32BE: - *out_fmt = olive::core::PixelFormat::F32; *out_ch = 1; return; + *out_fmt = olive::core::PixelFormat::F32; + *out_ch = 1; + return; case AV_PIX_FMT_RGBF32LE: case AV_PIX_FMT_RGBF32BE: - *out_fmt = olive::core::PixelFormat::F32; *out_ch = 3; return; + *out_fmt = olive::core::PixelFormat::F32; + *out_ch = 3; + return; case AV_PIX_FMT_RGBAF32LE: case AV_PIX_FMT_RGBAF32BE: - *out_fmt = olive::core::PixelFormat::F32; *out_ch = 4; return; + *out_fmt = olive::core::PixelFormat::F32; + *out_ch = 4; + return; default: - *out_fmt = olive::core::PixelFormat::INVALID; *out_ch = 0; return; + *out_fmt = olive::core::PixelFormat::INVALID; + *out_ch = 0; + return; } } // 作用:必要时将 AVFrame 转换为目标 VideoParams 对应格式。 // 优先使用 FFmpeg sws_scale;若不支持且 renderer 可用,则走 GPU 路径。 // 删除所有手写 CPU 像素循环,避免精度损失与性能瓶颈。 -static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, - const olive::VideoParams &dst_params, - olive::Renderer *renderer = nullptr) +static olive::AVFramePtr +ConvertFrameIfNeeded(olive::AVFramePtr src, + const olive::VideoParams &dst_params, + olive::Renderer *renderer = nullptr) { if (!src) { return nullptr; @@ -1048,8 +1083,7 @@ static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, } // Same format & size, no conversion needed - if (src->format == dst_fmt && - src->width == dst_params.width() && + if (src->format == dst_fmt && src->width == dst_params.width() && src->height == dst_params.height()) { return src; } @@ -1059,15 +1093,15 @@ static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, dst->width = dst_params.width(); dst->height = dst_params.height(); if (av_frame_get_buffer(dst.get(), 0) < 0) { - qWarning().noquote() << "[WARN] av_frame_get_buffer failed for dst_fmt=" << dst_fmt; + qWarning().noquote() + << "[WARN] av_frame_get_buffer failed for dst_fmt=" << dst_fmt; return src; } // Try FFmpeg sws_scale first SwsContext *sws_ctx = sws_getContext( src->width, src->height, static_cast(src->format), - dst->width, dst->height, dst_fmt, SWS_POINT, - nullptr, nullptr, nullptr); + dst->width, dst->height, dst_fmt, SWS_POINT, nullptr, nullptr, nullptr); if (sws_ctx) { int ret = sws_scale(sws_ctx, src->data, src->linesize, 0, src->height, dst->data, dst->linesize); @@ -1081,7 +1115,8 @@ static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, if (renderer && src->data[0]) { olive::core::PixelFormat src_fmt; int src_ch; - GetOliveFormatFromAV(static_cast(src->format), &src_fmt, &src_ch); + GetOliveFormatFromAV(static_cast(src->format), &src_fmt, + &src_ch); if (src_fmt != olive::core::PixelFormat::INVALID && src_ch > 0) { // Ensure renderer's OpenGL context is current before GPU operations. // The context may have been switched by upstream DownloadFromTexture calls. @@ -1092,7 +1127,8 @@ static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, olive::VideoParams src_vp(src->width, src->height, src_fmt, src_ch); int src_bpp = olive::VideoParams::GetBytesPerPixel(src_fmt, src_ch); - int src_linesize_pixels = (src_bpp > 0) ? src->linesize[0] / src_bpp : src->width; + int src_linesize_pixels = + (src_bpp > 0) ? src->linesize[0] / src_bpp : src->width; olive::TexturePtr src_tex = renderer->CreateTexture( src_vp, src->data[0], src_linesize_pixels); @@ -1108,7 +1144,8 @@ static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, // Download result back to AVFrame int dst_bpp = dst_params.GetBytesPerPixel(); - int dst_linesize_pixels = (dst_bpp > 0) ? dst->linesize[0] / dst_bpp : dst->width; + int dst_linesize_pixels = + (dst_bpp > 0) ? dst->linesize[0] / dst_bpp : dst->width; dst_tex->Download(dst->data[0], dst_linesize_pixels); return dst; } @@ -1125,7 +1162,8 @@ static olive::AVFramePtr ConvertFrameIfNeeded(olive::AVFramePtr src, // 作用:从字节行跨度换算像素行跨度。 // Purpose: Convert byte line size to pixel line size. -static int LinesizeToPixels(const olive::VideoParams ¶ms, int linesize_bytes) +static int LinesizeToPixels(const olive::VideoParams ¶ms, + int linesize_bytes) { const int bytes_per_pixel = params.channel_count() * params.format().byte_count(); @@ -1137,8 +1175,9 @@ static int LinesizeToPixels(const olive::VideoParams ¶ms, int linesize_bytes // 作用:将纹理转换为指定 VideoParams。优先使用 GPU shader 做格式转换, // 避免 CPU 回读/转换/上传的性能损失和精度损失。 -static olive::TexturePtr ConvertTextureForParams(olive::TexturePtr src, - const olive::VideoParams &dst_params) +static olive::TexturePtr +ConvertTextureForParams(olive::TexturePtr src, + const olive::VideoParams &dst_params) { if (!src) { return nullptr; @@ -1161,8 +1200,8 @@ static olive::TexturePtr ConvertTextureForParams(olive::TexturePtr src, job.Insert(QStringLiteral("ove_maintex"), olive::NodeValue(olive::NodeValue::kTexture, QVariant::fromValue(src))); - renderer->BlitToTexture(renderer->GetDefaultShader(), job, dst.get(), - false); + renderer->BlitToTexture(renderer->GetDefaultShader(), job, + dst.get(), false); return dst; } } @@ -1176,7 +1215,8 @@ static olive::TexturePtr ConvertTextureForParams(olive::TexturePtr src, return nullptr; } - olive::AVFramePtr converted = ConvertFrameIfNeeded(frame, dst_params, nullptr); + olive::AVFramePtr converted = + ConvertFrameIfNeeded(frame, dst_params, nullptr); if (!converted || !converted->data[0]) { return nullptr; } @@ -1208,10 +1248,10 @@ static olive::TexturePtr ConvertTextureForParams(olive::TexturePtr src, return dst; } - // 作用:安全获取插件标识符,便于日志输出。 // Purpose: Safely fetch plugin identifier for logging. -static QString PluginIdForInstance(const OFX::Host::ImageEffect::Instance *instance) +static QString +PluginIdForInstance(const OFX::Host::ImageEffect::Instance *instance) { if (!instance) { return QStringLiteral(""); @@ -1234,8 +1274,7 @@ static void LogOfxFailure(const char *action, OfxStatus stat, qWarning().noquote() << "OFX action failed:" << action << "plugin=" << PluginIdForInstance(instance) - << "status=" << OFX::StatStr(stat) - << "(" << stat << ")"; + << "status=" << OFX::StatStr(stat) << "(" << stat << ")"; } // 作用:输出 clip 的声明属性与关联 VideoParams,辅助定位格式不一致。 @@ -1255,8 +1294,7 @@ static void LogClipState(const char *label, << "components=" << QString::fromStdString(clip->getComponents()); if (params) { qWarning().noquote() - << "OFX clip params" << label - << "width=" << params->width() + << "OFX clip params" << label << "width=" << params->width() << "height=" << params->height() << "format=" << static_cast(params->format()) << "channels=" << params->channel_count(); @@ -1272,8 +1310,8 @@ static void LogImageProps(const char *label, /*qWarning().noquote() << "OFX image props" << label << ""; return;*/ } - int bounds[4] = {0, 0, 0, 0}; - int rod[4] = {0, 0, 0, 0}; + int bounds[4] = { 0, 0, 0, 0 }; + int rod[4] = { 0, 0, 0, 0 }; image->getIntPropertyN(kOfxImagePropBounds, bounds, 4); image->getIntPropertyN(kOfxImagePropRegionOfDefinition, rod, 4); const int row_bytes = image->getIntProperty(kOfxImagePropRowBytes); @@ -1295,7 +1333,8 @@ static void LogImageProps(const char *label, static void MarkRenderFailure(olive::TexturePtr destination) { if (destination && destination->renderer()) { - destination->renderer()->ClearDestination(destination.get(), 1.0, 0.0, 1.0, 1.0); + destination->renderer()->ClearDestination(destination.get(), 1.0, 0.0, + 1.0, 1.0); } } @@ -1316,9 +1355,9 @@ static void ShowErrorDialogAndUndo(const QString &message) static void ScheduleErrorDialogAndUndo(const QString &message) { if (auto *app = QCoreApplication::instance()) { - QMetaObject::invokeMethod(app, [message]() { - ShowErrorDialogAndUndo(message); - }, Qt::QueuedConnection); + QMetaObject::invokeMethod( + app, [message]() { ShowErrorDialogAndUndo(message); }, + Qt::QueuedConnection); } } @@ -1330,19 +1369,18 @@ static olive::AVFramePtr DownloadTextureToFrame(const olive::TexturePtr &tex) const olive::VideoParams ¶ms = tex->params(); return ReadbackTextureToFrame(tex, params); } -inline std::vector GetPluginSupportedDepths(const OFX::Host::ImageEffect::Descriptor& desc) +inline std::vector +GetPluginSupportedDepths(const OFX::Host::ImageEffect::Descriptor &desc) { std::vector depths; - const OFX::Host::Property::Set& props = desc.getProps(); + const OFX::Host::Property::Set &props = desc.getProps(); // 获取数组维度(支持几种深度) int dim = props.getDimension(kOfxImageEffectPropSupportedPixelDepths); for (int i = 0; i < dim; ++i) { // Host Support Library 返回 const std::string& - const std::string& val = props.getStringProperty( - kOfxImageEffectPropSupportedPixelDepths, - i - ); + const std::string &val = + props.getStringProperty(kOfxImageEffectPropSupportedPixelDepths, i); if (!val.empty() && val != kOfxBitDepthNone) { depths.push_back(val); } @@ -1351,11 +1389,13 @@ inline std::vector GetPluginSupportedDepths(const OFX::Host::ImageE } // 查询插件/宿主是否支持「各 clip 不同深度」 -inline bool SupportsMultipleClipDepths(const OFX::Host::ImageEffect::Descriptor& desc) +inline bool +SupportsMultipleClipDepths(const OFX::Host::ImageEffect::Descriptor &desc) { - const OFX::Host::Property::Set& props = desc.getProps(); + const OFX::Host::Property::Set &props = desc.getProps(); // 这是单值 int 属性(0 或 1),n = 0 - int val = props.getIntProperty(kOfxImageEffectPropSupportsMultipleClipDepths, 0); + int val = + props.getIntProperty(kOfxImageEffectPropSupportsMultipleClipDepths, 0); return val != 0; } @@ -1364,20 +1404,20 @@ inline bool SupportsMultipleClipDepths(const OFX::Host::ImageEffect::Descriptor& // 参考 OpenFX API: OfxImageEffectPropSupportedPixelDepths // Purpose: Select best input pixel format from plugin descriptor's supported // depth list. Priority: F32 > U16 > U8 > F16. -static PixelFormat SelectBestPluginInputFormat( - const OFX::Host::ImageEffect::Descriptor& desc) +static PixelFormat +SelectBestPluginInputFormat(const OFX::Host::ImageEffect::Descriptor &desc) { - const OFX::Host::Property::Set& props = desc.getProps(); + const OFX::Host::Property::Set &props = desc.getProps(); int dim = props.getDimension(kOfxImageEffectPropSupportedPixelDepths); bool supports_f32 = false; bool supports_u16 = false; - bool supports_u8 = false; + bool supports_u8 = false; bool supports_f16 = false; for (int i = 0; i < dim; ++i) { - const std::string& depth = props.getStringProperty( - kOfxImageEffectPropSupportedPixelDepths, i); + const std::string &depth = + props.getStringProperty(kOfxImageEffectPropSupportedPixelDepths, i); if (depth == kOfxBitDepthFloat) { supports_f32 = true; } else if (depth == kOfxBitDepthShort) { @@ -1390,20 +1430,24 @@ static PixelFormat SelectBestPluginInputFormat( } // 优先级:F32 > U16 > U8 > F16 - if (supports_f32) return PixelFormat::F32; - if (supports_u16) return PixelFormat::U16; - if (supports_u8) return PixelFormat::U8; - if (supports_f16) return PixelFormat::F16; + if (supports_f32) + return PixelFormat::F32; + if (supports_u16) + return PixelFormat::U16; + if (supports_u8) + return PixelFormat::U8; + if (supports_f16) + return PixelFormat::F16; return PixelFormat::INVALID; } // 作用:执行 OFX 插件渲染全流程(准备输入、调用动作、处理输出)。 // Purpose: Run full OFX plugin render flow (inputs, actions, outputs). -void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin::PluginJob& job, - olive::TexturePtr destination, - olive::VideoParams destination_params, - bool clear_destination, bool interactive) +void olive::plugin::PluginRenderer::RenderPlugin( + TexturePtr src, olive::plugin::PluginJob &job, + olive::TexturePtr destination, olive::VideoParams destination_params, + bool clear_destination, bool interactive) { - auto instance=job.pluginInstance(); + auto instance = job.pluginInstance(); if (!instance) { return; } @@ -1414,7 +1458,8 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: // internal QMap/images_ and params_, leading to invalid pointers being // passed to CImg and subsequent SIGSEGV. std::mutex *instance_mutex = nullptr; - if (auto *olive_inst = dynamic_cast(instance)) { + if (auto *olive_inst = + dynamic_cast(instance)) { instance_mutex = &olive_inst->mutex(); } else { static std::mutex fallback_mutex; @@ -1453,11 +1498,11 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: OfxPointD renderScale; renderScale.x = renderScale.y = 1.0; - - int numFramesToRender=1; + int numFramesToRender = 1; // Output Clip - OliveClipInstance *output_clip=dynamic_cast(instance->getClip("Output")); + OliveClipInstance *output_clip = + dynamic_cast(instance->getClip("Output")); if (!output_clip) { return; } @@ -1466,14 +1511,13 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: OfxStatus stat = kOfxStatOK; if (olive_instance && !olive_instance->isCreated()) { stat = instance->createInstanceAction(); - if(stat != kOfxStatOK && stat != kOfxStatReplyDefault) { + if (stat != kOfxStatOK && stat != kOfxStatReplyDefault) { LogOfxFailure("createInstance", stat, instance); MarkRenderFailure(destination); return; } } - OfxTime frame = job.time_seconds(); const auto &clips = olive_instance->getDescriptor().getClips(); @@ -1544,19 +1588,20 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: ok = true; } } catch (const OFX::Host::Property::Exception &e) { - qWarning().noquote() << "OFX getClipPreferences threw exception for plugin=" - << PluginIdForInstance(instance) - << "stat=" << e.getStatus(); + qWarning().noquote() + << "OFX getClipPreferences threw exception for plugin=" + << PluginIdForInstance(instance) << "stat=" << e.getStatus(); MarkRenderFailure(destination); ScheduleErrorDialogAndUndo( - QObject::tr("Plugin %1 failed because connected inputs have different frame rates.\n" - "The last operation has been undone.") + QObject::tr( + "Plugin %1 failed because connected inputs have different frame rates.\n" + "The last operation has been undone.") .arg(PluginIdForInstance(instance))); return; } catch (const std::exception &e) { - qWarning().noquote() << "OFX getClipPreferences threw exception for plugin=" - << PluginIdForInstance(instance) - << "what=" << e.what(); + qWarning().noquote() + << "OFX getClipPreferences threw exception for plugin=" + << PluginIdForInstance(instance) << "what=" << e.what(); MarkRenderFailure(destination); ScheduleErrorDialogAndUndo( QObject::tr("Plugin %1 encountered an error: %2\n" @@ -1579,7 +1624,8 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: OfxRectD regionOfInterest; regionOfInterest.x1 = 0.0; regionOfInterest.y1 = 0.0; - regionOfInterest.x2 = destination_params.width() * destination_params.pixel_aspect_ratio().toDouble(); + regionOfInterest.x2 = destination_params.width() * + destination_params.pixel_aspect_ratio().toDouble(); regionOfInterest.y2 = destination_params.height(); OfxRectD regionOfDefinition = regionOfInterest; @@ -1594,7 +1640,6 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: // // In our example we are doing full frame fetches regardless. - // set correct format for input // Ensure all input textures are fully rendered before CPU readback. @@ -1626,7 +1671,8 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: PixelFormat chosen_fmt = SelectBestPluginInputFormat(descriptor); VideoParams params = input_tex->params(); - if (chosen_fmt != PixelFormat::INVALID && params.format() != chosen_fmt) { + if (chosen_fmt != PixelFormat::INVALID && + params.format() != chosen_fmt) { params.set_format(chosen_fmt); TexturePtr converted_tex = ConvertTextureForParams(input_tex, params); @@ -1656,8 +1702,7 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: if (stat == kOfxStatErrBadHandle) { qWarning().noquote() << "OFX getRegionOfInterest returned BadHandle for plugin=" - << PluginIdForInstance(instance) - << "- using default RoI"; + << PluginIdForInstance(instance) << "- using default RoI"; } else { LogOfxFailure("getRegionOfInterest", stat, instance); MarkRenderFailure(destination); @@ -1689,10 +1734,8 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: renderWindow.x2 = destination_params.width(); renderWindow.y2 = destination_params.height(); - - stat = instance->beginRenderAction(frame, numFramesToRender, - 1.0, false, renderScale, true, - interactive); + stat = instance->beginRenderAction(frame, numFramesToRender, 1.0, false, + renderScale, true, interactive); if (stat != kOfxStatOK && stat != kOfxStatReplyDefault) { LogOfxFailure("beginRender", stat, instance); MarkRenderFailure(destination); @@ -1706,7 +1749,6 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: } #endif - if (!output_params.is_valid()) { qWarning().noquote() << "OFX render skipped due to invalid output params for plugin=" @@ -1723,25 +1765,25 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: // render a frame const char *render_field = GetRenderFieldForParams(output_params); - stat = instance->renderAction(frame, render_field, renderWindow, renderScale, - true, interactive, interactive); + stat = instance->renderAction(frame, render_field, renderWindow, + renderScale, true, interactive, interactive); if (stat != kOfxStatOK && stat != kOfxStatReplyDefault) { LogOfxFailure("render", stat, instance); LogClipState("output", output_clip, &output_params); for (const auto &entry : input_clips) { const auto params_it = input_params.find(entry.first); const olive::VideoParams *params = - (params_it != input_params.end()) ? ¶ms_it->second - : nullptr; + (params_it != input_params.end()) ? ¶ms_it->second : + nullptr; LogClipState("input", entry.second, params); OFX::Host::ImageEffect::Image *image = entry.second->getImage(frame, nullptr); LogImageProps("input", image); //if (image) { - //image->releaseReference(); + //image->releaseReference(); //} } - OFX::Host::ImageEffect::Image* output_image = + OFX::Host::ImageEffect::Image *output_image = output_clip->getOutputImage(frame); LogImageProps("output", output_image); MarkRenderFailure(destination); @@ -1751,7 +1793,7 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: } // get the output image buffer (CPU path only) - OFX::Host::ImageEffect::Image* output_image; + OFX::Host::ImageEffect::Image *output_image; if (!use_opengl) { output_image = output_clip->getOutputImage(frame); if (!output_image) { @@ -1759,8 +1801,9 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: << "OFX getOutputImage returned null for plugin=" << PluginIdForInstance(instance); MarkRenderFailure(destination); - instance->endRenderAction(frame, numFramesToRender, 1.0, interactive, - renderScale, true, interactive); + instance->endRenderAction(frame, numFramesToRender, 1.0, + interactive, renderScale, true, + interactive); return; } // Diagnostic: peek at first few pixels @@ -1775,31 +1818,33 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: } } } - } else { + } else { if (!destination || !destination->id().isValid()) { #ifdef OFX_SUPPORTS_OPENGLRENDER DetachOutputTexture(); instance->contextDetachedAction(); #endif - instance->endRenderAction(frame, numFramesToRender, 1.0, interactive, - renderScale, true, interactive); + instance->endRenderAction(frame, numFramesToRender, 1.0, + interactive, renderScale, true, + interactive); return; } } if (!use_opengl) { - AVFramePtr frame_ptr = - create_avframe_from_ofx_image_with_params(*output_image, - output_params); + AVFramePtr frame_ptr = create_avframe_from_ofx_image_with_params( + *output_image, output_params); if (!frame_ptr) { qWarning().noquote() << "OFX output image conversion failed for plugin=" << PluginIdForInstance(instance); - instance->endRenderAction(frame, numFramesToRender, 1.0, interactive, - renderScale, true, interactive); + instance->endRenderAction(frame, numFramesToRender, 1.0, + interactive, renderScale, true, + interactive); return; } - AVFramePtr converted = ConvertFrameIfNeeded(frame_ptr, destination_params, renderer_); + AVFramePtr converted = + ConvertFrameIfNeeded(frame_ptr, destination_params, renderer_); const AVPixelFormat expected_fmt = GetDestinationAVPixelFormat(destination_params); destination->handleFrame(converted); @@ -1829,14 +1874,14 @@ void olive::plugin::PluginRenderer::RenderPlugin(TexturePtr src, olive::plugin:: return; } - instance->endRenderAction(frame, numFramesToRender, 1.0, interactive, renderScale, true,interactive - ); - + instance->endRenderAction(frame, numFramesToRender, 1.0, interactive, + renderScale, true, interactive); } // 作用:绑定输出纹理到 OFX 的 GL 输出路径。 // Purpose: Attach output texture for OFX GL rendering. -void olive::plugin::PluginRenderer::AttachOutputTexture(olive::TexturePtr texture) +void olive::plugin::PluginRenderer::AttachOutputTexture( + olive::TexturePtr texture) { if (renderer_) { renderer_->AttachOutputTexture(texture.get()); diff --git a/app/render/plugin/pluginrenderer.h b/app/render/plugin/pluginrenderer.h index b0b62855d..cc08b52cb 100644 --- a/app/render/plugin/pluginrenderer.h +++ b/app/render/plugin/pluginrenderer.h @@ -31,8 +31,10 @@ namespace olive { -namespace plugin{ -namespace detail { +namespace plugin +{ +namespace detail +{ // 作用:将字节行跨度转换为像素跨度,便于纹理读写。 // Purpose: Convert byte stride to pixel stride for texture I/O. int BytesToPixels(int byte_linesize, const olive::VideoParams ¶ms); @@ -46,9 +48,15 @@ int BytesToPixels(int byte_linesize, const olive::VideoParams ¶ms); class PluginRenderer : public QObject { Q_OBJECT public: - explicit PluginRenderer(olive::Renderer *renderer, QObject *parent = nullptr) - : QObject(parent), renderer_(renderer) {} - virtual ~PluginRenderer() override {} + explicit PluginRenderer(olive::Renderer *renderer, + QObject *parent = nullptr) + : QObject(parent) + , renderer_(renderer) + { + } + virtual ~PluginRenderer() override + { + } olive::Renderer *renderer() const { @@ -63,7 +71,7 @@ public: void DetachOutputTexture(); // 作用:执行插件渲染流程(参数配置、输入/输出、调用渲染动作)。 // Purpose: Execute plugin render flow (params, inputs/outputs, render actions). - void RenderPlugin(TexturePtr src, olive::plugin::PluginJob& job, + void RenderPlugin(TexturePtr src, olive::plugin::PluginJob &job, olive::TexturePtr destination, olive::VideoParams destination_params, bool clear_destination, bool interactive); @@ -74,6 +82,4 @@ private: } } - - #endif //PLUGINRENDERER_H diff --git a/app/render/previewautocacher.cpp b/app/render/previewautocacher.cpp index 1c42a327b..193528109 100644 --- a/app/render/previewautocacher.cpp +++ b/app/render/previewautocacher.cpp @@ -561,7 +561,8 @@ void PreviewAutoCacher::TryRender() video_immediate_passthroughs_[watcher].append(t); } } else { - qWarning() << "Failed to find copied node for SFR ticket, requeueing"; + qWarning() + << "Failed to find copied node for SFR ticket, requeueing"; single_frame_render_ = t; if (!delayed_requeue_timer_.isActive()) { delayed_requeue_timer_.start(); @@ -594,7 +595,8 @@ void PreviewAutoCacher::TryRender() } } } else { - qWarning() << "Failed to find node copy for video job, retrying"; + qWarning() + << "Failed to find node copy for video job, retrying"; if (!delayed_requeue_timer_.isActive()) { delayed_requeue_timer_.start(); } @@ -636,7 +638,8 @@ void PreviewAutoCacher::TryRender() RenderAudio(copy, d.context, use_range, d.cache); } else { - qWarning() << "Failed to find node copy for audio job, retrying"; + qWarning() + << "Failed to find node copy for audio job, retrying"; pop = false; if (!delayed_requeue_timer_.isActive()) { delayed_requeue_timer_.start(); diff --git a/app/render/projectcopier.cpp b/app/render/projectcopier.cpp index cc406cc6d..1219596ae 100644 --- a/app/render/projectcopier.cpp +++ b/app/render/projectcopier.cpp @@ -265,7 +265,9 @@ void ProjectCopier::InsertIntoCopyMap(Node *node, Node *copy) if (Footage *src_footage = dynamic_cast(node)) { if (dynamic_cast(copy)) { connect(src_footage, &Footage::ProxySettingsChanged, this, - [this, src_footage]() { SyncFootageProxySettings(src_footage); }); + [this, src_footage]() { + SyncFootageProxySettings(src_footage); + }); SyncFootageProxySettings(src_footage); } } @@ -279,14 +281,15 @@ void ProjectCopier::SyncFootageProxySettings(Footage *source) Footage *copy = GetCopy(source); if (!copy) { qWarning() << "ProjectCopier::SyncFootageProxySettings: no copy for" - << source->filename(); + << source->filename(); return; } - qDebug() << "ProjectCopier::SyncFootageProxySettings:" << source->filename() - << "enabled=" << source->proxy_enabled() << "->" - << copy->proxy_enabled() << "state=" - << ProxyManager::ProxyStateToString(source->proxy_state()); + qDebug() + << "ProjectCopier::SyncFootageProxySettings:" << source->filename() + << "enabled=" << source->proxy_enabled() << "->" + << copy->proxy_enabled() + << "state=" << ProxyManager::ProxyStateToString(source->proxy_state()); copy->SetProxy(source->proxy_path(), source->proxy_state(), source->proxy_video_stream_index(), diff --git a/app/render/renderer.h b/app/render/renderer.h index 9d7ce2c75..f0e9c2cee 100644 --- a/app/render/renderer.h +++ b/app/render/renderer.h @@ -34,7 +34,8 @@ #include "texture.h" // Forward declarations to keep the render core header lightweight -namespace olive { +namespace olive +{ class ColorTransformJob; class Node; } @@ -57,17 +58,16 @@ public: void DestroyTexture(Texture *texture); - virtual void BlitToTexture(QVariant shader, olive::AcceleratedJob& job, - olive::Texture *destination, - bool clear_destination = true) + virtual void BlitToTexture(QVariant shader, olive::AcceleratedJob &job, + olive::Texture *destination, + bool clear_destination = true) { Blit(shader, job, destination, destination->params(), clear_destination); - } - void Blit(QVariant shader, olive::AcceleratedJob& job, olive::VideoParams params, - bool clear_destination = true) + void Blit(QVariant shader, olive::AcceleratedJob &job, + olive::VideoParams params, bool clear_destination = true) { Blit(shader, job, nullptr, params, clear_destination); } @@ -147,10 +147,12 @@ public: * * Default implementation is a no-op. */ - virtual void DetachOutputTexture() {} + virtual void DetachOutputTexture() + { + } protected: - virtual void Blit(QVariant shader, olive::AcceleratedJob& job, + virtual void Blit(QVariant shader, olive::AcceleratedJob &job, olive::Texture *destination, olive::VideoParams destination_params, bool clear_destination) = 0; @@ -164,7 +166,7 @@ protected: virtual void DestroyInternal() = 0; private: - std::atomic destroyed_{false}; + std::atomic destroyed_{ false }; std::shared_ptr lifetime_; struct ColorContext { struct LUT { diff --git a/app/render/rendermanager.cpp b/app/render/rendermanager.cpp index bbe62f7a4..5bd808695 100644 --- a/app/render/rendermanager.cpp +++ b/app/render/rendermanager.cpp @@ -78,24 +78,26 @@ QString RenderManager::BackendToString(Backend backend) } RenderManager::RenderManager(QObject *parent) - : backend_(BackendFromString( - OLIVE_CONFIG("GraphicsBackend").toString())) + : backend_(BackendFromString(OLIVE_CONFIG("GraphicsBackend").toString())) , requested_backend_(backend_) , aggressive_gc_(0) , worker_pool_(nullptr) { if (backend_ == kVulkan) { #ifndef OAK_ENABLE_DYNAMIC_RENDER_BACKEND - qWarning() << "Vulkan backend requested but dynamic render backend is not enabled. Falling back to OpenGL."; + qWarning() + << "Vulkan backend requested but dynamic render backend is not enabled. Falling back to OpenGL."; backend_ = kOpenGL; #endif } if (backend_ == kOpenGL || backend_ == kVulkan) { #ifdef OAK_ENABLE_DYNAMIC_RENDER_BACKEND - auto *dynamic_renderer = new DynamicRenderer(BackendToString(requested_backend_)); + auto *dynamic_renderer = + new DynamicRenderer(BackendToString(requested_backend_)); if (!dynamic_renderer->Load()) { - qWarning() << "Failed to load dynamic render backend" << BackendToString(requested_backend_) + qWarning() << "Failed to load dynamic render backend" + << BackendToString(requested_backend_) << ", falling back to OpenGL"; delete dynamic_renderer; backend_ = kOpenGL; @@ -104,7 +106,8 @@ RenderManager::RenderManager(QObject *parent) context_ = dynamic_renderer; // DynamicRenderer may internally fall back (e.g. Vulkan -> OpenGL). // Synchronize RenderManager's view of the actual runtime backend. - Backend actual_backend = BackendFromString(dynamic_renderer->backend_name()); + Backend actual_backend = + BackendFromString(dynamic_renderer->backend_name()); if (actual_backend != backend_) { qWarning() << "Dynamic render backend fell back from" << BackendToString(backend_) << "to" @@ -218,11 +221,13 @@ RenderTicketPtr RenderManager::RenderFrame(const RenderVideoParams ¶ms) if (worker_params.return_type == ReturnType::kNull) { dry_run_thread_->AddTicket(ticket); - } else if (worker_pool_ && worker_pool_->SubmitFrame(ticket, worker_params)) { + } else if (worker_pool_ && + worker_pool_->SubmitFrame(ticket, worker_params)) { return ticket; } else { - qWarning() << "RenderManager: worker pool unavailable, finishing ticket " - "without result"; + qWarning() + << "RenderManager: worker pool unavailable, finishing ticket " + "without result"; ticket->Finish(); } diff --git a/app/render/renderprocessor.cpp b/app/render/renderprocessor.cpp index 7b13e5f89..1c096b1b4 100644 --- a/app/render/renderprocessor.cpp +++ b/app/render/renderprocessor.cpp @@ -28,7 +28,6 @@ #include #include - #include "audio/audioprocessor.h" #include "node/block/clip/clip.h" #include "node/block/transition/transition.h" @@ -159,7 +158,6 @@ FramePtr RenderProcessor::GenerateFrame(TexturePtr texture, QString::fromUtf8(output_color_transform->id())); frame->set_video_params(display_params); } - } return frame; @@ -173,7 +171,7 @@ void RenderProcessor::Run() SetCancelPointer(ticket_->GetCancelAtom()); - VideoParams params=ticket_->property("vparam").value(); + VideoParams params = ticket_->property("vparam").value(); params.set_format(PixelFormat::F32); SetCacheVideoParams(params); SetCacheAudioParams(ticket_->property("aparam").value()); @@ -416,27 +414,29 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, } if (using_colorspace.isEmpty()) { - qWarning() << "RenderProcessor ProcessVideoFootage: no input colorspace available"; + qWarning() + << "RenderProcessor ProcessVideoFootage: no input colorspace available"; } auto blit_color_managed = [&](const TexturePtr &unmanaged_texture, - const VideoParams &texture_params) { + const VideoParams &texture_params) { if (!render_ctx_ || !unmanaged_texture || IsCancelled()) { return; } // We convert to our rendering pixel format, since that will always be float-based which // is necessary for correct color conversion - ColorProcessorPtr processor = ColorProcessor::Create( - color_manager, using_colorspace, - color_manager->GetReferenceColorSpace()); + ColorProcessorPtr processor = + ColorProcessor::Create(color_manager, using_colorspace, + color_manager->GetReferenceColorSpace()); ColorTransformJob job; job.SetColorProcessor(processor); job.SetInputTexture(unmanaged_texture); if (texture_params.channel_count() != VideoParams::kRGBAChannelCount || - texture_params.colorspace() == color_manager->GetReferenceColorSpace()) { + texture_params.colorspace() == + color_manager->GetReferenceColorSpace()) { job.SetInputAlphaAssociation(kAlphaNone); } else if (texture_params.premultiplied_alpha()) { job.SetInputAlphaAssociation(kAlphaAssociated); @@ -450,12 +450,14 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, render_ctx_->Flush(); }; - auto *input_pool = - QtUtils::ValueToPtr(ticket_->property("ipc_input_pool")); + auto *input_pool = QtUtils::ValueToPtr( + ticket_->property("ipc_input_pool")); int input_slot = -1; - const QVariantList input_slots = ticket_->property("ipc_input_slots").toList(); + const QVariantList input_slots = + ticket_->property("ipc_input_slots").toList(); if (!input_slots.isEmpty()) { - const QVariant cursor_value = ticket_->property("ipc_input_slot_cursor"); + const QVariant cursor_value = + ticket_->property("ipc_input_slot_cursor"); const int cursor = cursor_value.isValid() ? cursor_value.toInt() : 0; if (cursor >= 0 && cursor < input_slots.size()) { input_slot = input_slots.at(cursor).toInt(); @@ -467,25 +469,26 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, } if (render_ctx_ && input_pool && input_slot >= 0) { if (input_slot >= int(input_pool->slot_count())) { - qWarning() << "RenderProcessor received out-of-range IPC input frame slot" - << input_slot; + qWarning() + << "RenderProcessor received out-of-range IPC input frame slot" + << input_slot; return; } const ipc::FrameSlotMeta *meta = input_pool->Meta(uint32_t(input_slot)); - if (meta && meta->width > 0 && meta->height > 0 && meta->data_size > 0 && + if (meta && meta->width > 0 && meta->height > 0 && + meta->data_size > 0 && meta->data_size <= int(input_pool->slot_data_bytes())) { VideoParams input_params = stream_data; input_params.set_width(meta->width); input_params.set_height(meta->height); input_params.set_format(PixelFormat::Format(meta->format)); input_params.set_channel_count(meta->channel_count); - // The decoder may leave depth at 0 for 2D frames, but the renderer - // needs depth >= 1 to compute image size and upload the texture. - if (input_params.depth() <= 0) { - input_params.set_depth(1); - } - + // The decoder may leave depth at 0 for 2D frames, but the renderer + // needs depth >= 1 to compute image size and upload the texture. + if (input_params.depth() <= 0) { + input_params.set_depth(1); + } // Prefer the colorspace that the main process used when decoding this // frame. The FootageJob reconstructed in the worker may have stale or @@ -498,9 +501,9 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, } const int bytes_per_pixel = input_params.GetBytesPerPixel(); - const int linesize_pixels = bytes_per_pixel > 0 - ? meta->linesize / bytes_per_pixel - : input_params.effective_width(); + const int linesize_pixels = bytes_per_pixel > 0 ? + meta->linesize / bytes_per_pixel : + input_params.effective_width(); const void *slot_data = input_pool->SlotData(uint32_t(input_slot)); TexturePtr unmanaged_texture = render_ctx_->CreateTexture( @@ -509,13 +512,15 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, blit_color_managed(unmanaged_texture, input_params); return; } - qWarning() << "RenderProcessor received invalid IPC input frame slot" << input_slot; + qWarning() << "RenderProcessor received invalid IPC input frame slot" + << input_slot; return; } if (!decoder_cache_) { - qWarning() << "RenderProcessor has no decoder cache or IPC input frame for" - << stream->filename(); + qWarning() + << "RenderProcessor has no decoder cache or IPC input frame for" + << stream->filename(); return; } @@ -523,15 +528,15 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, static_cast(ticket_->property("mode").toInt()) == RenderMode::kOffline && stream->has_proxy() && QFileInfo::exists(stream->proxy_filename()); - const QString decode_filename = - use_proxy ? stream->proxy_filename() : stream->filename(); - const QString decoder_id = - use_proxy ? stream->proxy_decoder() : stream->decoder(); - const int stream_index = - use_proxy ? stream->proxy_stream_index() : stream_data.stream_index(); + const QString decode_filename = use_proxy ? stream->proxy_filename() : + stream->filename(); + const QString decoder_id = use_proxy ? stream->proxy_decoder() : + stream->decoder(); + const int stream_index = use_proxy ? stream->proxy_stream_index() : + stream_data.stream_index(); - Decoder::CodecStream default_codec_stream( - decode_filename, stream_index, GetCurrentBlock()); + Decoder::CodecStream default_codec_stream(decode_filename, stream_index, + GetCurrentBlock()); DecoderPtr decoder = nullptr; @@ -553,8 +558,8 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, decode_filename, frame_number); // Decoder will close automatically since it's a stream_ptr - decoder->Open(Decoder::CodecStream( - frame_filename, stream_index, GetCurrentBlock())); + decoder->Open(Decoder::CodecStream(frame_filename, stream_index, + GetCurrentBlock())); } break; } @@ -643,7 +648,8 @@ void RenderProcessor::ProcessShader(TexturePtr destination, const Node *node, locker.unlock(); // Run shader - render_ctx_->BlitToTexture(shader, const_cast(*job), destination.get()); + render_ctx_->BlitToTexture(shader, const_cast(*job), + destination.get()); } void RenderProcessor::ProcessSamples(SampleBuffer &destination, @@ -720,8 +726,7 @@ TexturePtr RenderProcessor::ProcessPluginJob(TexturePtr texture, return destination; } - auto *plugin_job = - dynamic_cast(texture->job()); + auto *plugin_job = dynamic_cast(texture->job()); if (!plugin_job) { return destination; } @@ -779,13 +784,8 @@ TexturePtr RenderProcessor::ProcessPluginJob(TexturePtr texture, } } - plugin_renderer.RenderPlugin( - src, - *plugin_job, - destination, - destination->params(), - true, - false); + plugin_renderer.RenderPlugin(src, *plugin_job, destination, + destination->params(), true, false); return destination; } @@ -797,7 +797,8 @@ TexturePtr RenderProcessor::ProcessVideoCacheJob(const CacheJob *val) // Auto-detect and discard black/empty cached frames (macOS TBDR artifact) bool all_black = true; if (frame->data() && frame->allocated_size() > 0) { - const uint8_t *pixels = reinterpret_cast(frame->data()); + const uint8_t *pixels = + reinterpret_cast(frame->data()); size_t alloc_size = static_cast(frame->allocated_size()); size_t check_bytes = std::min(alloc_size, size_t(4096)); for (size_t i = 0; i < check_bytes; ++i) { @@ -808,7 +809,8 @@ TexturePtr RenderProcessor::ProcessVideoCacheJob(const CacheJob *val) } } if (all_black) { - qWarning() << "[CACHE] Discarding black cached frame:" << val->GetFilename() + qWarning() << "[CACHE] Discarding black cached frame:" + << val->GetFilename() << "time=" << frame->timestamp().toDouble() << "size=" << frame->allocated_size(); QFile::remove(val->GetFilename()); diff --git a/app/render/renderprocessor.h b/app/render/renderprocessor.h index d72d8b0af..2a58c690f 100644 --- a/app/render/renderprocessor.h +++ b/app/render/renderprocessor.h @@ -32,7 +32,8 @@ namespace olive { -namespace plugin { +namespace plugin +{ class PluginRenderer; } diff --git a/app/render/renderworkerpool.cpp b/app/render/renderworkerpool.cpp index b4bc7b5bd..958e59058 100644 --- a/app/render/renderworkerpool.cpp +++ b/app/render/renderworkerpool.cpp @@ -62,8 +62,8 @@ struct FootageInput { class FootageInputCollector : public NodeTraverser { public: - QVector Collect(const RenderManager::RenderVideoParams ¶ms, - CancelAtom *cancel) + QVector + Collect(const RenderManager::RenderVideoParams ¶ms, CancelAtom *cancel) { SetCancelPointer(cancel); VideoParams cache_params = params.video_params; @@ -75,17 +75,15 @@ public: if (cache_params.interlacing() != VideoParams::kInterlaceNone) { frame_length /= 2; } - NodeValueTable table = GenerateTable(params.node, - TimeRange(params.time, - params.time + frame_length)); + NodeValueTable table = GenerateTable( + params.node, TimeRange(params.time, params.time + frame_length)); NodeValue texture = table.Get(NodeValue::kTexture); ResolveJobs(texture); if (cache_params.interlacing() != VideoParams::kInterlaceNone) { - NodeValueTable second_table = - GenerateTable(params.node, - TimeRange(params.time + frame_length, - params.time + frame_length * 2)); + NodeValueTable second_table = GenerateTable( + params.node, TimeRange(params.time + frame_length, + params.time + frame_length * 2)); NodeValue second_texture = second_table.Get(NodeValue::kTexture); ResolveJobs(second_texture); } @@ -94,13 +92,12 @@ public: } protected: - void ProcessVideoFootage(TexturePtr destination, - const FootageJob *stream, + void ProcessVideoFootage(TexturePtr destination, const FootageJob *stream, const rational &input_time) override { Q_UNUSED(destination) if (stream) { - inputs_.append({*stream, input_time}); + inputs_.append({ *stream, input_time }); } } @@ -140,8 +137,7 @@ DecoderPtr ResolveDecoderFromCache(DecoderCache *decoder_cache, } FramePtr DecodeInputFrame(DecoderCache *decoder_cache, - const FootageInput &input, - CancelAtom *cancel) + const FootageInput &input, CancelAtom *cancel) { VideoParams stream_data = input.job.video_params(); QString filename = input.job.filename(); @@ -162,19 +158,17 @@ FramePtr DecodeInputFrame(DecoderCache *decoder_cache, case VideoParams::kVideoTypeVideo: case VideoParams::kVideoTypeStill: decoder = ResolveDecoderFromCache( - decoder_cache, - decoder_id, + decoder_cache, decoder_id, Decoder::CodecStream(filename, stream_index, nullptr)); break; case VideoParams::kVideoTypeImageSequence: { const int64_t frame_number = stream_data.get_time_in_timebase_units(input.time); - filename = Decoder::TransformImageSequenceFileName(filename, frame_number); + filename = + Decoder::TransformImageSequenceFileName(filename, frame_number); decoder = Decoder::CreateFromID(decoder_id); - if (decoder && - !decoder->Open(Decoder::CodecStream(filename, - stream_index, - nullptr))) { + if (decoder && !decoder->Open(Decoder::CodecStream( + filename, stream_index, nullptr))) { decoder = nullptr; } break; @@ -188,9 +182,9 @@ FramePtr DecodeInputFrame(DecoderCache *decoder_cache, Decoder::RetrieveVideoParams retrieve; retrieve.divider = stream_data.divider(); retrieve.maximum_format = PixelFormat::U16; - retrieve.time = stream_data.video_type() == VideoParams::kVideoTypeVideo - ? input.time - : Decoder::kAnyTimecode; + retrieve.time = stream_data.video_type() == VideoParams::kVideoTypeVideo ? + input.time : + Decoder::kAnyTimecode; retrieve.cancelled = cancel; retrieve.force_range = stream_data.color_range(); retrieve.src_interlacing = stream_data.interlacing(); @@ -207,15 +201,13 @@ FramePtr DecodeInputFrame(DecoderCache *decoder_cache, frame_params.set_colorspace(stream_data.colorspace()); frame->set_video_params(frame_params); } - } return frame; } bool DecodeInputFrames(DecoderCache *decoder_cache, const RenderManager::RenderVideoParams ¶ms, - CancelAtom *cancel, - QVector *frames) + CancelAtom *cancel, QVector *frames) { frames->clear(); @@ -271,7 +263,8 @@ bool WriteControlMessage(QProcess *process, const QJsonObject &obj) return false; } - const QByteArray line = QJsonDocument(obj).toJson(QJsonDocument::Compact) + '\n'; + const QByteArray line = + QJsonDocument(obj).toJson(QJsonDocument::Compact) + '\n'; const qint64 written = process->write(line); if (written != line.size()) { return false; @@ -285,7 +278,8 @@ void TryWriteControlMessage(QProcess *process, const QJsonObject &obj) return; } - const QByteArray line = QJsonDocument(obj).toJson(QJsonDocument::Compact) + '\n'; + const QByteArray line = + QJsonDocument(obj).toJson(QJsonDocument::Compact) + '\n'; process->write(line); } @@ -315,12 +309,14 @@ bool IsProcessAlive(qint64 process_id) } #if defined(Q_OS_WIN) - HANDLE handle = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, DWORD(process_id)); + HANDLE handle = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, + DWORD(process_id)); if (!handle) { return false; } DWORD exit_code = 0; - const bool alive = GetExitCodeProcess(handle, &exit_code) && exit_code == STILL_ACTIVE; + const bool alive = GetExitCodeProcess(handle, &exit_code) && + exit_code == STILL_ACTIVE; CloseHandle(handle); return alive; #else @@ -334,11 +330,11 @@ QString WorkerProcessDetails(const QProcess *process) return QStringLiteral("worker process unavailable"); } - const QString exit_status = - process->exitStatus() == QProcess::CrashExit - ? QStringLiteral("crash") - : QStringLiteral("normal"); - return QStringLiteral("state=%1 exit_status=%2 exit_code=%3 process_error=%4 error=\"%5\"") + const QString exit_status = process->exitStatus() == QProcess::CrashExit ? + QStringLiteral("crash") : + QStringLiteral("normal"); + return QStringLiteral( + "state=%1 exit_status=%2 exit_code=%3 process_error=%4 error=\"%5\"") .arg(int(process->state())) .arg(exit_status) .arg(process->exitCode()) @@ -355,8 +351,9 @@ bool ReadControlMessage(QProcess *process, QJsonObject *out, QString *error, *error = QStringLiteral("worker exited before response: %1") .arg(WorkerProcessDetails(process)); } else { - *error = QStringLiteral("timeout waiting for worker response: %1") - .arg(WorkerProcessDetails(process)); + *error = + QStringLiteral("timeout waiting for worker response: %1") + .arg(WorkerProcessDetails(process)); } } return false; @@ -372,7 +369,8 @@ bool ReadControlMessage(QProcess *process, QJsonObject *out, QString *error, const QJsonDocument doc = QJsonDocument::fromJson(line, &parse_error); if (parse_error.error != QJsonParseError::NoError || !doc.isObject()) { if (error) { - *error = QStringLiteral("worker emitted malformed control JSON"); + *error = + QStringLiteral("worker emitted malformed control JSON"); } return false; } @@ -394,11 +392,10 @@ bool ReadControlMessage(QProcess *process, QJsonObject *out, QString *error, return false; } -} // namespace +} // namespace RenderWorkerPool::RenderWorkerPool(DecoderCache *decoder_cache, - const QString &gpu_backend, - QObject *parent) + const QString &gpu_backend, QObject *parent) : QThread(parent) , decoder_cache_(decoder_cache) , gpu_backend_(gpu_backend) @@ -410,8 +407,8 @@ RenderWorkerPool::~RenderWorkerPool() Shutdown(); } -bool RenderWorkerPool::SubmitFrame(RenderTicketPtr ticket, - const RenderManager::RenderVideoParams ¶ms) +bool RenderWorkerPool::SubmitFrame( + RenderTicketPtr ticket, const RenderManager::RenderVideoParams ¶ms) { Job job(ticket, params); if (!PrepareJob(ticket, params, &job)) { @@ -505,13 +502,13 @@ void RenderWorkerPool::run() active_jobs_.resize(worker_count); } - std::vector>> local_pools(worker_count); + std::vector>> local_pools( + worker_count); std::vector workers; workers.reserve(size_t(worker_count)); for (int i = 0; i < worker_count; i++) { - workers.emplace_back([this, i, &local_pools]() { - WorkerLoop(i, &local_pools[i]); - }); + workers.emplace_back( + [this, i, &local_pools]() { WorkerLoop(i, &local_pools[i]); }); } for (std::thread &worker : workers) { @@ -529,8 +526,7 @@ void RenderWorkerPool::run() } void RenderWorkerPool::WorkerLoop( - int worker_index, - std::vector> *local_pool) + int worker_index, std::vector> *local_pool) { while (true) { mutex_.lock(); @@ -561,7 +557,8 @@ bool RenderWorkerPool::PrepareJob(RenderTicketPtr ticket, Project *project = Project::GetProjectFromObject(params.node); if (!project) { - qWarning() << "RenderWorkerPool could not resolve project for render node"; + qWarning() + << "RenderWorkerPool could not resolve project for render node"; return false; } @@ -582,12 +579,14 @@ bool RenderWorkerPool::PrepareJob(RenderTicketPtr ticket, if (it != graph_cache_.end() && !project->is_modified()) { graph_path = it->path; AddGraphPathRefLocked(graph_path); - qDebug() << "RenderWorkerPool::PrepareJob: using cached graph snapshot" - << graph_path; + qDebug() + << "RenderWorkerPool::PrepareJob: using cached graph snapshot" + << graph_path; } else { if (it != graph_cache_.end()) { - qDebug() << "RenderWorkerPool::PrepareJob: graph stale, rewriting" - << project->is_modified(); + qDebug() + << "RenderWorkerPool::PrepareJob: graph stale, rewriting" + << project->is_modified(); SetGraphPathCachedLocked(it->path, false); graph_cache_.erase(it); } @@ -603,7 +602,7 @@ bool RenderWorkerPool::PrepareJob(RenderTicketPtr ticket, project->set_modified(false); } locker.relock(); - graph_cache_.insert(project_uuid, {graph_path}); + graph_cache_.insert(project_uuid, { graph_path }); SetGraphPathCachedLocked(graph_path, true); AddGraphPathRefLocked(graph_path); } @@ -625,34 +624,39 @@ bool RenderWorkerPool::WriteGraphSnapshot(Project *project, QString *path) // still referenced them. const QString graph_dir = QDir::tempPath(); - QTemporaryFile file(QDir(graph_dir).filePath(QStringLiteral("oak-render-graph-XXXXXX.ove"))); + QTemporaryFile file(QDir(graph_dir).filePath( + QStringLiteral("oak-render-graph-XXXXXX.ove"))); file.setAutoRemove(false); if (!file.open()) { - qWarning() << "RenderWorkerPool failed to create graph snapshot temp file" - << file.errorString(); + qWarning() + << "RenderWorkerPool failed to create graph snapshot temp file" + << file.errorString(); return false; } QXmlStreamWriter writer(&file); - ProjectSerializer::SaveData data(ProjectSerializer::kProject, project, file.fileName()); - const ProjectSerializer::Result result = ProjectSerializer::Save(&writer, data); + ProjectSerializer::SaveData data(ProjectSerializer::kProject, project, + file.fileName()); + const ProjectSerializer::Result result = + ProjectSerializer::Save(&writer, data); file.close(); if (result.code() != ProjectSerializer::kSuccess || writer.hasError()) { qWarning() << "RenderWorkerPool failed to serialize graph snapshot" - << result.GetDetails(); + << result.GetDetails(); QFile::remove(file.fileName()); return false; } qDebug() << "RenderWorkerPool wrote graph snapshot" << file.fileName() - << "size" << QFileInfo(file.fileName()).size(); + << "size" << QFileInfo(file.fileName()).size(); *path = file.fileName(); return true; } -bool RenderWorkerPool::IsSupported(const RenderManager::RenderVideoParams ¶ms) const +bool RenderWorkerPool::IsSupported( + const RenderManager::RenderVideoParams ¶ms) const { return params.node && params.return_type == RenderManager::kFrame && params.video_params.is_valid(); @@ -662,7 +666,8 @@ void RenderWorkerPool::ProcessJob( const Job &job, int worker_index, std::vector> *local_pool) { - const qint64 ticket_id = qint64(reinterpret_cast(job.ticket.get())); + const qint64 ticket_id = + qint64(reinterpret_cast(job.ticket.get())); SetActiveWorker(worker_index, job.ticket, nullptr, ticket_id); job.ticket->Start(); @@ -672,7 +677,8 @@ void RenderWorkerPool::ProcessJob( return; } - std::unique_ptr worker = AcquireWorker(local_pool, job.graph_path); + std::unique_ptr worker = + AcquireWorker(local_pool, job.graph_path); if (!worker) { qWarning() << "RenderWorkerPool failed to acquire worker for ticket" << ticket_id; @@ -685,22 +691,24 @@ void RenderWorkerPool::ProcessJob( if (attempt > 0) { worker = AcquireWorker(local_pool, job.graph_path); if (!worker) { - qWarning() << "RenderWorkerPool failed to acquire worker for retry" - << ticket_id; + qWarning() + << "RenderWorkerPool failed to acquire worker for retry" + << ticket_id; break; } } - const JobResult result = ProcessJobAttempt(job, worker_index, attempt, - worker.get()); - const qint64 worker_pid = worker && worker->process - ? worker->process->processId() - : 0; + const JobResult result = + ProcessJobAttempt(job, worker_index, attempt, worker.get()); + const qint64 worker_pid = + worker && worker->process ? worker->process->processId() : 0; const bool process_state_running = worker && worker->process && - worker->process->state() == QProcess::Running; + worker->process->state() == + QProcess::Running; const bool os_alive = worker_pid > 0 && IsProcessAlive(worker_pid); const bool worker_healthy = process_state_running || os_alive; - const bool keep_alive = (result == JobResult::kFinished) && worker_healthy; + const bool keep_alive = (result == JobResult::kFinished) && + worker_healthy; ReturnWorker(local_pool, std::move(worker), keep_alive); worker.reset(); @@ -733,11 +741,12 @@ void RenderWorkerPool::ProcessJob( ClearActiveWorker(worker_index, 0); } -RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( - const Job &job, int worker_index, int attempt_index, - PooledWorker *worker) +RenderWorkerPool::JobResult +RenderWorkerPool::ProcessJobAttempt(const Job &job, int worker_index, + int attempt_index, PooledWorker *worker) { - const qint64 ticket_id = qint64(reinterpret_cast(job.ticket.get())); + const qint64 ticket_id = + qint64(reinterpret_cast(job.ticket.get())); if (job.ticket->IsCancelled()) { return JobResult::kCancelled; } @@ -748,27 +757,25 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( const qint64 worker_process_id = worker->process->processId(); - const int output_width = job.params.force_size.width() > 0 - ? job.params.force_size.width() - : job.params.video_params.effective_width(); - const int output_height = job.params.force_size.height() > 0 - ? job.params.force_size.height() - : job.params.video_params.effective_height(); + const int output_width = job.params.force_size.width() > 0 ? + job.params.force_size.width() : + job.params.video_params.effective_width(); + const int output_height = job.params.force_size.height() > 0 ? + job.params.force_size.height() : + job.params.video_params.effective_height(); const PixelFormat::Format output_format = - job.params.force_format != PixelFormat::INVALID - ? PixelFormat::Format(job.params.force_format) - : PixelFormat::F32; - const int output_channels = job.params.force_channel_count > 0 - ? job.params.force_channel_count - : VideoParams::kRGBAChannelCount; - const int output_linesize = - Frame::generate_linesize_bytes(output_width, output_format, - output_channels); + job.params.force_format != PixelFormat::INVALID ? + PixelFormat::Format(job.params.force_format) : + PixelFormat::F32; + const int output_channels = job.params.force_channel_count > 0 ? + job.params.force_channel_count : + VideoParams::kRGBAChannelCount; + const int output_linesize = Frame::generate_linesize_bytes( + output_width, output_format, output_channels); const size_t estimated_output_slot_bytes = size_t(output_linesize) * size_t(output_height); - const int f32_rgba_linesize = - Frame::generate_linesize_bytes(output_width, PixelFormat::F32, - VideoParams::kRGBAChannelCount); + const int f32_rgba_linesize = Frame::generate_linesize_bytes( + output_width, PixelFormat::F32, VideoParams::kRGBAChannelCount); const size_t f32_rgba_slot_bytes = size_t(f32_rgba_linesize) * size_t(output_height); const size_t output_slot_bytes = @@ -795,10 +802,11 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( QStringLiteral("-out"); } if (!worker->output_region.Open(worker->output_shm_key, - output_region_bytes, - ipc::SharedMemoryRegion::kCreate)) { - qWarning() << "RenderWorkerPool failed to create output shared memory" - << worker->output_region.error(); + output_region_bytes, + ipc::SharedMemoryRegion::kCreate)) { + qWarning() + << "RenderWorkerPool failed to create output shared memory" + << worker->output_region.error(); return JobResult::kFatalFailure; } worker->output_pool = ipc::FrameSlotPool::Create( @@ -823,17 +831,19 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( ipc::SharedMemoryRegion::MakeKey(worker_process_id, 1) + QStringLiteral("-in"); } - const size_t input_region_bytes = - ipc::FrameSlotPool::BytesNeeded(input_slot_count, input_slot_bytes); + const size_t input_region_bytes = ipc::FrameSlotPool::BytesNeeded( + input_slot_count, input_slot_bytes); if (!worker->input_region.Open(worker->input_shm_key, - input_region_bytes, - ipc::SharedMemoryRegion::kCreate)) { - qWarning() << "RenderWorkerPool failed to create input shared memory" - << worker->input_region.error(); + input_region_bytes, + ipc::SharedMemoryRegion::kCreate)) { + qWarning() + << "RenderWorkerPool failed to create input shared memory" + << worker->input_region.error(); return JobResult::kFatalFailure; } - worker->input_pool = ipc::FrameSlotPool::Create( - worker->input_region.data(), input_slot_count, input_slot_bytes); + worker->input_pool = + ipc::FrameSlotPool::Create(worker->input_region.data(), + input_slot_count, input_slot_bytes); worker->input_slot_bytes = input_slot_bytes; } } @@ -843,7 +853,8 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( if (input_slot_count > 0) { for (const FramePtr &frame : job.input_frames) { if (frame->allocated_size() > int(worker->input_slot_bytes)) { - qWarning() << "RenderWorkerPool decoded input frame exceeds slot size"; + qWarning() + << "RenderWorkerPool decoded input frame exceeds slot size"; return JobResult::kFatalFailure; } @@ -869,9 +880,9 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( const QString cs = frame->video_params().colorspace(); if (!cs.isEmpty()) { const QByteArray cs_utf8 = cs.toUtf8(); - const size_t copy_len = qMin( - static_cast(cs_utf8.size()), - sizeof(meta->colorspace) - 1); + const size_t copy_len = + qMin(static_cast(cs_utf8.size()), + sizeof(meta->colorspace) - 1); memcpy(meta->colorspace, cs_utf8.constData(), copy_len); meta->colorspace[copy_len] = '\0'; } @@ -905,16 +916,16 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( handshake.input_slots = input_slots.size(); handshake.output_slots = int(kOutputSlots); handshake.slot_data_bytes = qint64(output_slot_bytes); - handshake.input_slot_data_bytes = input_slots.isEmpty() - ? 0 - : qint64(input_slot_bytes); + handshake.input_slot_data_bytes = + input_slots.isEmpty() ? 0 : qint64(input_slot_bytes); if (!WriteControlMessage(worker->process, handshake.ToJson())) { if (!job.ticket->IsCancelled()) { - qWarning() << "RenderWorkerPool failed to send shared-memory handshake"; + qWarning() + << "RenderWorkerPool failed to send shared-memory handshake"; } ClearActiveWorker(worker_index, worker_process_id); - return job.ticket->IsCancelled() ? JobResult::kCancelled - : JobResult::kRetryableFailure; + return job.ticket->IsCancelled() ? JobResult::kCancelled : + JobResult::kRetryableFailure; } if (worker->loaded_graph_path != job.graph_path) { @@ -929,12 +940,11 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( << error << worker->process->readAllStandardError(); } ClearActiveWorker(worker_index, worker_process_id); - return job.ticket->IsCancelled() ? JobResult::kCancelled - : JobResult::kRetryableFailure; + return job.ticket->IsCancelled() ? JobResult::kCancelled : + JobResult::kRetryableFailure; } worker->loaded_graph_path = job.graph_path; - -} + } ipc::RenderFrameMsg render; render.ticket_id = ticket_id; render.node_uuid = job.node_token; @@ -960,8 +970,8 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( qWarning() << "RenderWorkerPool failed to send render_frame"; } ClearActiveWorker(worker_index, worker_process_id); - return job.ticket->IsCancelled() ? JobResult::kCancelled - : JobResult::kRetryableFailure; + return job.ticket->IsCancelled() ? JobResult::kCancelled : + JobResult::kRetryableFailure; } QString error; @@ -974,8 +984,8 @@ RenderWorkerPool::JobResult RenderWorkerPool::ProcessJobAttempt( << error << worker->process->readAllStandardError(); } ClearActiveWorker(worker_index, worker_process_id); - return job.ticket->IsCancelled() ? JobResult::kCancelled - : JobResult::kRetryableFailure; + return job.ticket->IsCancelled() ? JobResult::kCancelled : + JobResult::kRetryableFailure; } if (ipc::FrameReadyMsg::FromJson(response, &ready)) { @@ -1068,8 +1078,8 @@ std::unique_ptr RenderWorkerPool::AcquireWorker( local_pool->erase(local_pool->begin() + i); continue; } - const bool candidate_state_running = - candidate->process->state() == QProcess::Running; + const bool candidate_state_running = candidate->process->state() == + QProcess::Running; const bool candidate_os_alive = IsProcessAlive(candidate->process->processId()); if (!candidate_state_running && !candidate_os_alive) { @@ -1085,7 +1095,8 @@ std::unique_ptr RenderWorkerPool::AcquireWorker( if (best_index < 0 || (!candidate->loaded_graph_path.isEmpty() && candidate->loaded_graph_path == graph_path && - ((*local_pool)[size_t(best_index)]->loaded_graph_path != graph_path))) { + ((*local_pool)[size_t(best_index)]->loaded_graph_path != + graph_path))) { best_index = int(i); } ++i; @@ -1100,16 +1111,16 @@ std::unique_ptr RenderWorkerPool::AcquireWorker( return worker; } - // No idle worker available: start a new one. auto *process = new QProcess(); process->setProgram(WorkerProgramPath()); - process->setArguments({QStringLiteral("--backend"), gpu_backend_}); + process->setArguments({ QStringLiteral("--backend"), gpu_backend_ }); - const QString worker_stderr_path = QDir(QDir::tempPath()).filePath( - QStringLiteral("oak-render-worker-%1-%2.stderr.log") - .arg(QCoreApplication::applicationPid()) - .arg(QDateTime::currentMSecsSinceEpoch())); + const QString worker_stderr_path = + QDir(QDir::tempPath()) + .filePath(QStringLiteral("oak-render-worker-%1-%2.stderr.log") + .arg(QCoreApplication::applicationPid()) + .arg(QDateTime::currentMSecsSinceEpoch())); process->setStandardErrorFile(worker_stderr_path); process->start(); @@ -1140,8 +1151,7 @@ std::unique_ptr RenderWorkerPool::AcquireWorker( void RenderWorkerPool::ReturnWorker( std::vector> *local_pool, - std::unique_ptr worker, - bool keep_alive) + std::unique_ptr worker, bool keep_alive) { if (!worker || !worker->process) { return; @@ -1216,8 +1226,7 @@ void RenderWorkerPool::FinishWithFrame(RenderTicketPtr ticket, } VideoParams params(meta->width, meta->height, - PixelFormat::Format(meta->format), - meta->channel_count); + PixelFormat::Format(meta->format), meta->channel_count); FramePtr frame = Frame::Create(); frame->set_timestamp(rational(int(meta->time_num), int(meta->time_den))); frame->set_video_params(params); @@ -1281,7 +1290,8 @@ void RenderWorkerPool::SetGraphPathCached(const QString &path, bool cached) SetGraphPathCachedLocked(path, cached); } -void RenderWorkerPool::SetGraphPathCachedLocked(const QString &path, bool cached) +void RenderWorkerPool::SetGraphPathCachedLocked(const QString &path, + bool cached) { if (path.isEmpty()) { return; @@ -1296,4 +1306,4 @@ void RenderWorkerPool::SetGraphPathCachedLocked(const QString &path, bool cached } } -} // namespace olive +} // namespace olive diff --git a/app/render/renderworkerpool.h b/app/render/renderworkerpool.h index e19496dba..fa5be97a7 100644 --- a/app/render/renderworkerpool.h +++ b/app/render/renderworkerpool.h @@ -114,8 +114,7 @@ private: }; bool PrepareJob(RenderTicketPtr ticket, - const RenderManager::RenderVideoParams ¶ms, - Job *job); + const RenderManager::RenderVideoParams ¶ms, Job *job); bool WriteGraphSnapshot(Project *project, QString *path); bool IsSupported(const RenderManager::RenderVideoParams ¶ms) const; @@ -124,8 +123,7 @@ private: void ProcessJob(const Job &job, int worker_index, std::vector> *local_pool); JobResult ProcessJobAttempt(const Job &job, int worker_index, - int attempt_index, - PooledWorker *worker); + int attempt_index, PooledWorker *worker); void FinishWithFrame(RenderTicketPtr ticket, const ipc::FrameSlotPool &pool, uint32_t slot); void CleanupGraphFile(const QString &path); @@ -141,13 +139,14 @@ private: void ClearActiveWorker(int worker_index, qint64 process_id); int WorkerCount() const; - std::unique_ptr AcquireWorker( - std::vector> *local_pool, - const QString &graph_path); + std::unique_ptr + AcquireWorker(std::vector> *local_pool, + const QString &graph_path); void ReturnWorker(std::vector> *local_pool, std::unique_ptr worker, bool keep_alive); void ShutdownWorker(PooledWorker *worker); - void ShutdownLocalPool(std::vector> *local_pool); + void + ShutdownLocalPool(std::vector> *local_pool); void ClearGraphCache(); DecoderCache *decoder_cache_; diff --git a/app/render/texture.h b/app/render/texture.h index 01592bff7..38522eccc 100644 --- a/app/render/texture.h +++ b/app/render/texture.h @@ -36,7 +36,7 @@ namespace olive class AcceleratedJob; class Renderer; struct RendererLifetime { - std::atomic alive{true}; + std::atomic alive{ true }; }; class Texture; @@ -162,16 +162,18 @@ public: } void handleFrame(AVFramePtr ptr) { - frame_=ptr; + frame_ = ptr; } - AVFramePtr frame(){ + AVFramePtr frame() + { return frame_; } + private: bool IsRendererAlive() const { return renderer_ && - (!renderer_lifetime_ || renderer_lifetime_->alive.load()); + (!renderer_lifetime_ || renderer_lifetime_->alive.load()); } Renderer *renderer_; diff --git a/app/render/videoparams.cpp b/app/render/videoparams.cpp index 7ad44107b..6e5b54536 100644 --- a/app/render/videoparams.cpp +++ b/app/render/videoparams.cpp @@ -259,8 +259,8 @@ QString VideoParams::GetFormatName(PixelFormat format) break; } - return QCoreApplication::translate("VideoParams", "Unknown (0x%1)") - .arg(static_cast(format), 0, 16); + return QCoreApplication::translate("VideoParams", "Unknown (0x%1)") + .arg(static_cast(format), 0, 16); } int VideoParams::GetDividerForTargetResolution(int src_width, int src_height, diff --git a/app/render/vulkan/vulkanbackend_c.cpp b/app/render/vulkan/vulkanbackend_c.cpp index 0b80850e5..135c54984 100644 --- a/app/render/vulkan/vulkanbackend_c.cpp +++ b/app/render/vulkan/vulkanbackend_c.cpp @@ -11,7 +11,8 @@ #include "render/videoparams.h" #include "render/vulkan/vulkanrenderer.h" -namespace { +namespace +{ class BackendVulkanRenderer : public olive::VulkanRenderer { public: @@ -38,38 +39,42 @@ const QVariant &VariantRef(const void *variant) } // namespace // Creates the Vulkan backend object and returns it as an opaque C handle. -OAK_RENDER_BACKEND_EXPORT OakRenderBackendHandle oak_renderer_create(void *parent) +OAK_RENDER_BACKEND_EXPORT OakRenderBackendHandle +oak_renderer_create(void *parent) { return new BackendVulkanRenderer(static_cast(parent)); } // Destroys the opaque backend object created by oak_renderer_create(). -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy(OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy(OakRenderBackendHandle handle) { delete Renderer(handle); } // Reports Vulkan backend capabilities and runtime availability status. -OAK_RENDER_BACKEND_EXPORT bool oak_renderer_get_info( - OakRenderBackendHandle handle, OakRenderBackendInfo *out_info) +OAK_RENDER_BACKEND_EXPORT bool +oak_renderer_get_info(OakRenderBackendHandle handle, + OakRenderBackendInfo *out_info) { if (!handle || !out_info) { return false; } out_info->abi_version = 1; out_info->kind = OAK_RENDER_BACKEND_VULKAN; - out_info->capabilities = OAK_RENDER_BACKEND_CAP_TEXTURES | - OAK_RENDER_BACKEND_CAP_SHADERS | OAK_RENDER_BACKEND_CAP_BLIT | - OAK_RENDER_BACKEND_CAP_READBACK; + out_info->capabilities = + OAK_RENDER_BACKEND_CAP_TEXTURES | OAK_RENDER_BACKEND_CAP_SHADERS | + OAK_RENDER_BACKEND_CAP_BLIT | OAK_RENDER_BACKEND_CAP_READBACK; out_info->name = "vulkan"; - out_info->status = Renderer(handle)->IsAvailable() ? "available" : "unavailable"; + out_info->status = Renderer(handle)->IsAvailable() ? "available" : + "unavailable"; return true; } // Probes runtime availability by trying Init() once; this lets missing ICDs or // unusable drivers fall back before normal rendering starts. -OAK_RENDER_BACKEND_EXPORT bool oak_renderer_is_available( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT bool +oak_renderer_is_available(OakRenderBackendHandle handle) { auto *r = Renderer(handle); if (!r || r->IsAvailable()) { @@ -89,41 +94,41 @@ OAK_RENDER_BACKEND_EXPORT bool oak_renderer_init(OakRenderBackendHandle handle) } // Vulkan does not use a QOpenGLContext; the argument is accepted for ABI parity. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_init_with_context( - OakRenderBackendHandle handle, void *context) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_init_with_context(OakRenderBackendHandle handle, void *context) { Q_UNUSED(context) Renderer(handle)->Init(); } // Creates reusable Vulkan resources after device initialization. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_post_init( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_post_init(OakRenderBackendHandle handle) { Renderer(handle)->PostInit(); } // Reserved for API symmetry; Vulkan cleanup is handled by destroy_internal. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_post_destroy( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_post_destroy(OakRenderBackendHandle handle) { Renderer(handle)->PostDestroy(); } // Releases all Vulkan resources owned by the renderer. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy_internal( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy_internal(OakRenderBackendHandle handle) { Renderer(handle)->DestroyInternal(); } // Clears a Vulkan texture destination. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_clear_destination( - OakRenderBackendHandle handle, void *texture, double r, double g, double b, - double a) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_clear_destination(OakRenderBackendHandle handle, void *texture, + double r, double g, double b, double a) { Renderer(handle)->ClearDestination(static_cast(texture), - r, g, b, a); + r, g, b, a); } // Creates a Vulkan texture and writes its QVariant handle to out_variant. @@ -131,51 +136,58 @@ OAK_RENDER_BACKEND_EXPORT void oak_renderer_create_native_texture( OakRenderBackendHandle handle, int width, int height, int depth, int format, int channel_count, const void *data, int linesize, void *out_variant) { - *static_cast(out_variant) = Renderer(handle)->CreateNativeTexture( - width, height, depth, static_cast(format), - channel_count, data, linesize); + *static_cast(out_variant) = + Renderer(handle)->CreateNativeTexture( + width, height, depth, + static_cast(format), channel_count, + data, linesize); } // Destroys a Vulkan texture represented by a QVariant handle. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy_native_texture( - OakRenderBackendHandle handle, const void *variant) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy_native_texture(OakRenderBackendHandle handle, + const void *variant) { Renderer(handle)->DestroyNativeTexture(VariantRef(variant)); } // Compiles a Vulkan shader and returns its QVariant handle. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_create_native_shader( - OakRenderBackendHandle handle, const void *shader_code, void *out_variant) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_create_native_shader(OakRenderBackendHandle handle, + const void *shader_code, void *out_variant) { - *static_cast(out_variant) = Renderer(handle)->CreateNativeShader( - *static_cast(shader_code)); + *static_cast(out_variant) = + Renderer(handle)->CreateNativeShader( + *static_cast(shader_code)); } // Destroys a Vulkan shader represented by a QVariant handle. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_destroy_native_shader( - OakRenderBackendHandle handle, const void *variant) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_destroy_native_shader(OakRenderBackendHandle handle, + const void *variant) { Renderer(handle)->DestroyNativeShader(VariantRef(variant)); } // Uploads CPU pixel data into a Vulkan texture. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_upload_to_texture( - OakRenderBackendHandle handle, const void *variant, const void *video_params, - const void *data, int linesize) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_upload_to_texture(OakRenderBackendHandle handle, + const void *variant, const void *video_params, + const void *data, int linesize) { Renderer(handle)->UploadToTexture( - VariantRef(variant), *static_cast(video_params), - data, linesize); + VariantRef(variant), + *static_cast(video_params), data, linesize); } // Downloads a Vulkan texture to CPU memory. OAK_RENDER_BACKEND_EXPORT void oak_renderer_download_from_texture( - OakRenderBackendHandle handle, const void *variant, const void *video_params, - void *data, int linesize) + OakRenderBackendHandle handle, const void *variant, + const void *video_params, void *data, int linesize) { Renderer(handle)->DownloadFromTexture( - VariantRef(variant), *static_cast(video_params), - data, linesize); + VariantRef(variant), + *static_cast(video_params), data, linesize); } // Waits for all queued Vulkan work to finish. @@ -185,18 +197,23 @@ OAK_RENDER_BACKEND_EXPORT void oak_renderer_flush(OakRenderBackendHandle handle) } // Reads one pixel from a Vulkan texture. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_get_pixel_from_texture( - OakRenderBackendHandle handle, void *texture, const void *point, - void *out_color) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_get_pixel_from_texture(OakRenderBackendHandle handle, + void *texture, const void *point, + void *out_color) { - *static_cast(out_color) = Renderer(handle)->GetPixelFromTexture( - static_cast(texture), *static_cast(point)); + *static_cast(out_color) = + Renderer(handle)->GetPixelFromTexture( + static_cast(texture), + *static_cast(point)); } // Executes a shader blit through the wrapped Vulkan renderer. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_blit( - OakRenderBackendHandle handle, const void *shader, void *job, - void *destination, const void *destination_params, bool clear_destination) +OAK_RENDER_BACKEND_EXPORT void oak_renderer_blit(OakRenderBackendHandle handle, + const void *shader, void *job, + void *destination, + const void *destination_params, + bool clear_destination) { Renderer(handle)->Blit( VariantRef(shader), *static_cast(job), @@ -206,16 +223,17 @@ OAK_RENDER_BACKEND_EXPORT void oak_renderer_blit( } // Vulkan has no OpenGL context; return null so callers avoid GL-only paths. -OAK_RENDER_BACKEND_EXPORT void *oak_renderer_opengl_context( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void * +oak_renderer_opengl_context(OakRenderBackendHandle handle) { Q_UNUSED(handle) return nullptr; } // OFX OpenGL output attachment is unsupported in Vulkan and intentionally no-op. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_attach_output_texture( - OakRenderBackendHandle handle, const void *texture_id) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_attach_output_texture(OakRenderBackendHandle handle, + const void *texture_id) { Q_UNUSED(handle) Q_UNUSED(texture_id) @@ -223,8 +241,8 @@ OAK_RENDER_BACKEND_EXPORT void oak_renderer_attach_output_texture( } // OFX OpenGL output detachment is unsupported in Vulkan and intentionally no-op. -OAK_RENDER_BACKEND_EXPORT void oak_renderer_detach_output_texture( - OakRenderBackendHandle handle) +OAK_RENDER_BACKEND_EXPORT void +oak_renderer_detach_output_texture(OakRenderBackendHandle handle) { Q_UNUSED(handle) // Vulkan does not support OFX OpenGL render output attachment. diff --git a/app/render/vulkan/vulkanrenderer.cpp b/app/render/vulkan/vulkanrenderer.cpp index 76594b050..3211e4b51 100644 --- a/app/render/vulkan/vulkanrenderer.cpp +++ b/app/render/vulkan/vulkanrenderer.cpp @@ -63,17 +63,15 @@ struct VulkanRenderer::StagingBuffer { }; static const float kBlitVertices[] = { - -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, - 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, - -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, - -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, + -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, }; // Constructs the renderer; Vulkan resources are created lazily so unavailable // Vulkan systems can still instantiate the object and report fallback state. -VulkanRenderer::VulkanRenderer(QObject *parent) : Renderer(parent) +VulkanRenderer::VulkanRenderer(QObject *parent) + : Renderer(parent) { } @@ -140,7 +138,8 @@ void VulkanRenderer::DestroyInternal() for (auto it = shaders_.begin(); it != shaders_.end(); ++it) { VulkanShader *sh = it.value(); - for (auto pit = sh->pipeline_cache.begin(); pit != sh->pipeline_cache.end(); ++pit) { + for (auto pit = sh->pipeline_cache.begin(); + pit != sh->pipeline_cache.end(); ++pit) { if (pit.value() != VK_NULL_HANDLE) { vkDestroyPipeline(device_, pit.value(), nullptr); } @@ -150,7 +149,8 @@ void VulkanRenderer::DestroyInternal() vkDestroyPipelineLayout(device_, sh->pipeline_layout, nullptr); } if (sh->descriptor_layout != VK_NULL_HANDLE) { - vkDestroyDescriptorSetLayout(device_, sh->descriptor_layout, nullptr); + vkDestroyDescriptorSetLayout(device_, sh->descriptor_layout, + nullptr); } if (sh->vert_module != VK_NULL_HANDLE) { vkDestroyShaderModule(device_, sh->vert_module, nullptr); @@ -200,7 +200,8 @@ void VulkanRenderer::DestroyInternal() reusable_command_buffer_ = VK_NULL_HANDLE; } - for (auto it = render_pass_cache_.begin(); it != render_pass_cache_.end(); ++it) { + for (auto it = render_pass_cache_.begin(); it != render_pass_cache_.end(); + ++it) { if (it.value() != VK_NULL_HANDLE) { vkDestroyRenderPass(device_, it.value(), nullptr); } @@ -262,10 +263,11 @@ bool VulkanRenderer::CreateInstance() } uint32_t extension_count = 0; - vkEnumerateInstanceExtensionProperties(nullptr, &extension_count, nullptr); + vkEnumerateInstanceExtensionProperties(nullptr, &extension_count, + nullptr); QVector extensions(extension_count); vkEnumerateInstanceExtensionProperties(nullptr, &extension_count, - extensions.data()); + extensions.data()); for (const VkExtensionProperties &ext : extensions) { if (strcmp(ext.extensionName, debug_extension) == 0) { has_debug_extension = true; @@ -303,11 +305,10 @@ bool VulkanRenderer::CreateInstance() // Logs validation errors/warnings from the Vulkan validation layers. These are // the first signal of missing barriers or invalid usage that would otherwise // become a GPU hang. -VKAPI_ATTR VkBool32 VKAPI_CALL -VulkanRenderer::DebugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageType, - const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, - void *pUserData) +VKAPI_ATTR VkBool32 VKAPI_CALL VulkanRenderer::DebugCallback( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageType, + const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, void *pUserData) { Q_UNUSED(messageType) Q_UNUSED(pUserData) @@ -320,7 +321,8 @@ VulkanRenderer::DebugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeve // bring-up but flood the log and degrade playback performance. if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) { qWarning() << "Vulkan validation error:" << pCallbackData->pMessage; - } else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) { + } else if (messageSeverity & + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) { qWarning() << "Vulkan validation warning:" << pCallbackData->pMessage; } @@ -341,12 +343,12 @@ bool VulkanRenderer::CreateDebugMessenger() create_info.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT; - create_info.messageType = - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT; + create_info.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT; create_info.pfnUserCallback = DebugCallback; - VkResult result = create_fn(instance_, &create_info, nullptr, &debug_messenger_); + VkResult result = + create_fn(instance_, &create_info, nullptr, &debug_messenger_); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan debug messenger:" << result; return false; @@ -371,14 +373,16 @@ void VulkanRenderer::DestroyDebugMessenger() // device without swapchain extensions because viewer output is CPU readback. bool VulkanRenderer::CreateDevice() { - VkResult result = vkEnumeratePhysicalDevices(instance_, &physical_device_count_, nullptr); + VkResult result = + vkEnumeratePhysicalDevices(instance_, &physical_device_count_, nullptr); if (result != VK_SUCCESS || physical_device_count_ == 0) { qWarning() << "No Vulkan-capable physical devices found"; return false; } QVector devices(physical_device_count_); - result = vkEnumeratePhysicalDevices(instance_, &physical_device_count_, devices.data()); + result = vkEnumeratePhysicalDevices(instance_, &physical_device_count_, + devices.data()); if (result != VK_SUCCESS) { qWarning() << "Failed to enumerate Vulkan physical devices:" << result; return false; @@ -391,10 +395,11 @@ bool VulkanRenderer::CreateDevice() vkGetPhysicalDeviceMemoryProperties(device, &mem_properties_); uint32_t queue_family_count = 0; - vkGetPhysicalDeviceQueueFamilyProperties(device, &queue_family_count, nullptr); + vkGetPhysicalDeviceQueueFamilyProperties(device, &queue_family_count, + nullptr); QVector queue_families(queue_family_count); vkGetPhysicalDeviceQueueFamilyProperties(device, &queue_family_count, - queue_families.data()); + queue_families.data()); for (uint32_t i = 0; i < queue_family_count; i++) { if (queue_families[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) { @@ -409,7 +414,8 @@ bool VulkanRenderer::CreateDevice() } } - if (physical_device_ == VK_NULL_HANDLE || graphics_queue_family_ == UINT32_MAX) { + if (physical_device_ == VK_NULL_HANDLE || + graphics_queue_family_ == UINT32_MAX) { qWarning() << "No Vulkan physical device with a graphics queue found"; return false; } @@ -433,7 +439,8 @@ bool VulkanRenderer::CreateDevice() device_create_info.enabledExtensionCount = 0; device_create_info.ppEnabledExtensionNames = nullptr; - result = vkCreateDevice(physical_device_, &device_create_info, nullptr, &device_); + result = vkCreateDevice(physical_device_, &device_create_info, nullptr, + &device_); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan logical device:" << result; return false; @@ -454,7 +461,8 @@ bool VulkanRenderer::CreateCommandPool() pool_info.queueFamilyIndex = graphics_queue_family_; pool_info.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; - VkResult result = vkCreateCommandPool(device_, &pool_info, nullptr, &command_pool_); + VkResult result = + vkCreateCommandPool(device_, &pool_info, nullptr, &command_pool_); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan command pool:" << result; return false; @@ -479,8 +487,8 @@ bool VulkanRenderer::CreateDescriptorPool() pool_info.maxSets = kMaxDescriptorSets; pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; - VkResult result = vkCreateDescriptorPool(device_, &pool_info, nullptr, - &descriptor_pool_); + VkResult result = + vkCreateDescriptorPool(device_, &pool_info, nullptr, &descriptor_pool_); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan descriptor pool:" << result; return false; @@ -491,7 +499,8 @@ bool VulkanRenderer::CreateDescriptorPool() // Returns a cached render pass keyed by color format and load operation. VkRenderPass VulkanRenderer::GetOrCreateRenderPass(VkFormat format, bool clear) { - const quint64 key = (static_cast(format) << 1) | (clear ? 1ULL : 0ULL); + const quint64 key = (static_cast(format) << 1) | + (clear ? 1ULL : 0ULL); auto it = render_pass_cache_.find(key); if (it != render_pass_cache_.end()) { return it.value(); @@ -501,7 +510,7 @@ VkRenderPass VulkanRenderer::GetOrCreateRenderPass(VkFormat format, bool clear) color_attachment.format = format; color_attachment.samples = VK_SAMPLE_COUNT_1_BIT; color_attachment.loadOp = clear ? VK_ATTACHMENT_LOAD_OP_CLEAR : - VK_ATTACHMENT_LOAD_OP_LOAD; + VK_ATTACHMENT_LOAD_OP_LOAD; color_attachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE; color_attachment.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; color_attachment.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; @@ -538,14 +547,16 @@ VkRenderPass VulkanRenderer::GetOrCreateRenderPass(VkFormat format, bool clear) dependencies[0].srcSubpass = VK_SUBPASS_EXTERNAL; dependencies[0].dstSubpass = 0; dependencies[0].srcStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; - dependencies[0].dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependencies[0].dstStageMask = + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; dependencies[0].srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT; dependencies[0].dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; dependencies[1].srcSubpass = 0; dependencies[1].dstSubpass = VK_SUBPASS_EXTERNAL; - dependencies[1].srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependencies[1].srcStageMask = + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; dependencies[1].dstStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; dependencies[1].srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; dependencies[1].dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | @@ -561,8 +572,8 @@ VkRenderPass VulkanRenderer::GetOrCreateRenderPass(VkFormat format, bool clear) render_pass_info.pDependencies = dependencies; VkRenderPass render_pass = VK_NULL_HANDLE; - VkResult result = vkCreateRenderPass(device_, &render_pass_info, nullptr, - &render_pass); + VkResult result = + vkCreateRenderPass(device_, &render_pass_info, nullptr, &render_pass); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan render pass:" << result; return VK_NULL_HANDLE; @@ -572,7 +583,6 @@ VkRenderPass VulkanRenderer::GetOrCreateRenderPass(VkFormat format, bool clear) return render_pass; } - // Uploads a fullscreen quad to device-local memory through a staging buffer. bool VulkanRenderer::CreateVertexBuffer() { @@ -585,7 +595,8 @@ bool VulkanRenderer::CreateVertexBuffer() buffer_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; VkBuffer staging_buffer; - VkResult result = vkCreateBuffer(device_, &buffer_info, nullptr, &staging_buffer); + VkResult result = + vkCreateBuffer(device_, &buffer_info, nullptr, &staging_buffer); if (result != VK_SUCCESS) { return false; } @@ -597,8 +608,8 @@ bool VulkanRenderer::CreateVertexBuffer() alloc_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; alloc_info.allocationSize = mem_req.size; alloc_info.memoryTypeIndex = FindMemoryType( - mem_req.memoryTypeBits, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); + mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); if (alloc_info.memoryTypeIndex == UINT32_MAX) { vkDestroyBuffer(device_, staging_buffer, nullptr); return false; @@ -623,7 +634,8 @@ bool VulkanRenderer::CreateVertexBuffer() memcpy(data, kBlitVertices, (size_t)buffer_size); vkUnmapMemory(device_, staging_memory); - buffer_info.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; + buffer_info.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT | + VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; result = vkCreateBuffer(device_, &buffer_info, nullptr, &vertex_buffer_); if (result != VK_SUCCESS) { vkFreeMemory(device_, staging_memory, nullptr); @@ -634,8 +646,8 @@ bool VulkanRenderer::CreateVertexBuffer() vkGetBufferMemoryRequirements(device_, vertex_buffer_, &mem_req); alloc_info.allocationSize = mem_req.size; - alloc_info.memoryTypeIndex = - FindMemoryType(mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + alloc_info.memoryTypeIndex = FindMemoryType( + mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); if (alloc_info.memoryTypeIndex == UINT32_MAX) { vkDestroyBuffer(device_, vertex_buffer_, nullptr); vkFreeMemory(device_, staging_memory, nullptr); @@ -643,7 +655,8 @@ bool VulkanRenderer::CreateVertexBuffer() return false; } - result = vkAllocateMemory(device_, &alloc_info, nullptr, &vertex_buffer_memory_); + result = + vkAllocateMemory(device_, &alloc_info, nullptr, &vertex_buffer_memory_); if (result != VK_SUCCESS) { vkDestroyBuffer(device_, vertex_buffer_, nullptr); vkFreeMemory(device_, staging_memory, nullptr); @@ -651,7 +664,8 @@ bool VulkanRenderer::CreateVertexBuffer() return false; } - result = vkBindBufferMemory(device_, vertex_buffer_, vertex_buffer_memory_, 0); + result = + vkBindBufferMemory(device_, vertex_buffer_, vertex_buffer_memory_, 0); if (result != VK_SUCCESS) { vkFreeMemory(device_, vertex_buffer_memory_, nullptr); vkDestroyBuffer(device_, vertex_buffer_, nullptr); @@ -662,7 +676,9 @@ bool VulkanRenderer::CreateVertexBuffer() // Copy from staging to device local VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return false; } + if (cmd == VK_NULL_HANDLE) { + return false; + } VkBufferCopy copy_region = {}; copy_region.size = buffer_size; vkCmdCopyBuffer(cmd, staging_buffer, vertex_buffer_, 1, ©_region); @@ -693,7 +709,8 @@ bool VulkanRenderer::CreateLinearSampler() sampler_info.minLod = 0.0f; sampler_info.maxLod = 0.0f; - VkResult result = vkCreateSampler(device_, &sampler_info, nullptr, &linear_sampler_); + VkResult result = + vkCreateSampler(device_, &sampler_info, nullptr, &linear_sampler_); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan linear sampler:" << result; return false; @@ -720,7 +737,8 @@ bool VulkanRenderer::CreateNearestSampler() sampler_info.minLod = 0.0f; sampler_info.maxLod = 0.0f; - VkResult result = vkCreateSampler(device_, &sampler_info, nullptr, &nearest_sampler_); + VkResult result = + vkCreateSampler(device_, &sampler_info, nullptr, &nearest_sampler_); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan nearest sampler:" << result; return false; @@ -733,7 +751,8 @@ VkSampler VulkanRenderer::GetSampler(Texture::Interpolation interpolation) const { switch (interpolation) { case Texture::kNearest: - return nearest_sampler_ != VK_NULL_HANDLE ? nearest_sampler_ : linear_sampler_; + return nearest_sampler_ != VK_NULL_HANDLE ? nearest_sampler_ : + linear_sampler_; case Texture::kLinear: case Texture::kMipmappedLinear: default: @@ -745,8 +764,9 @@ VkSampler VulkanRenderer::GetSampler(Texture::Interpolation interpolation) const // Vulkan allocations are expensive and some drivers fragment host-visible heaps // under repeated 4K/F32 readback. Reusing one submit-and-wait staging buffer // keeps peak allocation count low while the renderer mutex serializes callers. -bool VulkanRenderer::CreateStagingBuffer(VkDeviceSize size, VkBuffer *out_buffer, - VkDeviceMemory *out_memory) +bool VulkanRenderer::CreateStagingBuffer(VkDeviceSize size, + VkBuffer *out_buffer, + VkDeviceMemory *out_memory) { if (size == 0) { return false; @@ -793,10 +813,11 @@ bool VulkanRenderer::CreateStagingBuffer(VkDeviceSize size, VkBuffer *out_buffer alloc_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; alloc_info.allocationSize = mem_req.size; alloc_info.memoryTypeIndex = FindMemoryType( - mem_req.memoryTypeBits, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); + mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); if (alloc_info.memoryTypeIndex == UINT32_MAX) { - qWarning() << "Failed to find host-visible memory type for Vulkan staging buffer"; + qWarning() + << "Failed to find host-visible memory type for Vulkan staging buffer"; vkDestroyBuffer(device_, buffer, nullptr); return false; } @@ -804,9 +825,10 @@ bool VulkanRenderer::CreateStagingBuffer(VkDeviceSize size, VkBuffer *out_buffer VkDeviceMemory memory = VK_NULL_HANDLE; result = vkAllocateMemory(device_, &alloc_info, nullptr, &memory); if (result != VK_SUCCESS) { - qWarning() << "Failed to allocate Vulkan staging buffer memory:" << result - << "size=" << qulonglong(size) - << "allocation=" << qulonglong(mem_req.size); + qWarning() + << "Failed to allocate Vulkan staging buffer memory:" << result + << "size=" << qulonglong(size) + << "allocation=" << qulonglong(mem_req.size); vkDestroyBuffer(device_, buffer, nullptr); return false; } @@ -830,7 +852,8 @@ bool VulkanRenderer::CreateStagingBuffer(VkDeviceSize size, VkBuffer *out_buffer // Kept for existing call sites; runtime staging buffers are renderer-owned and // released in DestroyInternal() or when a larger staging allocation is required. -void VulkanRenderer::DestroyStagingBuffer(VkBuffer buffer, VkDeviceMemory memory) +void VulkanRenderer::DestroyStagingBuffer(VkBuffer buffer, + VkDeviceMemory memory) { if (staging_buffer_ && buffer == staging_buffer_->buffer && memory == staging_buffer_->memory) { @@ -854,9 +877,10 @@ VkCommandBuffer VulkanRenderer::BeginOneTimeCommands() alloc_info.commandPool = command_pool_; alloc_info.commandBufferCount = 1; - VkResult result = vkAllocateCommandBuffers( - device_, &alloc_info, &reusable_command_buffer_); - if (result != VK_SUCCESS || reusable_command_buffer_ == VK_NULL_HANDLE) { + VkResult result = vkAllocateCommandBuffers(device_, &alloc_info, + &reusable_command_buffer_); + if (result != VK_SUCCESS || + reusable_command_buffer_ == VK_NULL_HANDLE) { qWarning() << "Failed to allocate Vulkan command buffer:" << result; return VK_NULL_HANDLE; } @@ -868,7 +892,8 @@ VkCommandBuffer VulkanRenderer::BeginOneTimeCommands() begin_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - VkResult result = vkBeginCommandBuffer(reusable_command_buffer_, &begin_info); + VkResult result = + vkBeginCommandBuffer(reusable_command_buffer_, &begin_info); if (result != VK_SUCCESS) { qWarning() << "Failed to begin Vulkan command buffer:" << result; return VK_NULL_HANDLE; @@ -910,14 +935,15 @@ void VulkanRenderer::EndOneTimeCommands(VkCommandBuffer cmd) submit_info.commandBufferCount = 1; submit_info.pCommandBuffers = &cmd; - VkResult result = vkQueueSubmit(graphics_queue_, 1, &submit_info, - reusable_fence_); + VkResult result = + vkQueueSubmit(graphics_queue_, 1, &submit_info, reusable_fence_); if (result != VK_SUCCESS) { if (result == VK_ERROR_DEVICE_LOST) { if (!device_lost_) { device_lost_ = true; - qCritical() << "Vulkan device lost during vkQueueSubmit; stopping " - "further GPU submissions"; + qCritical() + << "Vulkan device lost during vkQueueSubmit; stopping " + "further GPU submissions"; } } else { qWarning() << "vkQueueSubmit failed:" << result; @@ -957,7 +983,8 @@ void VulkanRenderer::TransitionImageLayout(VkCommandBuffer cmd, VkImage image, barrier.subresourceRange.layerCount = 1; VkPipelineStageFlags source_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; - VkPipelineStageFlags destination_stage = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; + VkPipelineStageFlags destination_stage = + VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; bool handled = false; auto set_transfer = [&]() { @@ -1059,11 +1086,13 @@ void VulkanRenderer::TransitionImageLayout(VkCommandBuffer cmd, VkImage image, } if (!handled) { - qWarning() << "Unhandled Vulkan layout transition from" << old_layout - << "to" << new_layout - << "- using conservative ALL_COMMANDS barrier"; - barrier.srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT; - barrier.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT; + qWarning() + << "Unhandled Vulkan layout transition from" << old_layout << "to" + << new_layout << "- using conservative ALL_COMMANDS barrier"; + barrier.srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | + VK_ACCESS_MEMORY_WRITE_BIT; + barrier.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | + VK_ACCESS_MEMORY_WRITE_BIT; source_stage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; destination_stage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; } @@ -1072,7 +1101,6 @@ void VulkanRenderer::TransitionImageLayout(VkCommandBuffer cmd, VkImage image, nullptr, 1, &barrier); } - // Records a buffer-to-image copy for tightly packed texture uploads. void VulkanRenderer::CopyBufferToImage(VkCommandBuffer cmd, VkBuffer buffer, VkImage image, uint32_t width, @@ -1089,15 +1117,15 @@ void VulkanRenderer::CopyBufferToImage(VkCommandBuffer cmd, VkBuffer buffer, region.imageOffset = { 0, 0, 0 }; region.imageExtent = { width, height, depth }; - vkCmdCopyBufferToImage(cmd, buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - 1, ®ion); + vkCmdCopyBufferToImage(cmd, buffer, image, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion); } // Records an image-to-buffer copy for full texture downloads or one-pixel reads. void VulkanRenderer::CopyImageToBuffer(VkCommandBuffer cmd, VkImage image, VkBuffer buffer, uint32_t width, - uint32_t height, - uint32_t offset_x, uint32_t offset_y) + uint32_t height, uint32_t offset_x, + uint32_t offset_y) { VkBufferImageCopy region = {}; region.bufferOffset = 0; @@ -1107,24 +1135,29 @@ void VulkanRenderer::CopyImageToBuffer(VkCommandBuffer cmd, VkImage image, region.imageSubresource.mipLevel = 0; region.imageSubresource.baseArrayLayer = 0; region.imageSubresource.layerCount = 1; - region.imageOffset = { static_cast(offset_x), static_cast(offset_y), 0 }; + region.imageOffset = { static_cast(offset_x), + static_cast(offset_y), 0 }; region.imageExtent = { width, height, 1 }; - vkCmdCopyImageToBuffer(cmd, image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, buffer, - 1, ®ion); + vkCmdCopyImageToBuffer(cmd, image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, + buffer, 1, ®ion); } // Converts Oak's pixel format/channel count pair to the closest Vulkan format. VkFormat VulkanRenderer::PixelFormatToVkFormat(PixelFormat format, - int channel_count) const + int channel_count) const { switch (format) { case PixelFormat::U8: switch (channel_count) { - case 1: return VK_FORMAT_R8_UNORM; - case 2: return VK_FORMAT_R8G8_UNORM; - case 3: return VK_FORMAT_R8G8B8_UNORM; - case 4: return VK_FORMAT_R8G8B8A8_UNORM; + case 1: + return VK_FORMAT_R8_UNORM; + case 2: + return VK_FORMAT_R8G8_UNORM; + case 3: + return VK_FORMAT_R8G8B8_UNORM; + case 4: + return VK_FORMAT_R8G8B8A8_UNORM; } break; case PixelFormat::U10: @@ -1134,26 +1167,38 @@ VkFormat VulkanRenderer::PixelFormatToVkFormat(PixelFormat format, break; case PixelFormat::U16: switch (channel_count) { - case 1: return VK_FORMAT_R16_UNORM; - case 2: return VK_FORMAT_R16G16_UNORM; - case 3: return VK_FORMAT_R16G16B16_UNORM; - case 4: return VK_FORMAT_R16G16B16A16_UNORM; + case 1: + return VK_FORMAT_R16_UNORM; + case 2: + return VK_FORMAT_R16G16_UNORM; + case 3: + return VK_FORMAT_R16G16B16_UNORM; + case 4: + return VK_FORMAT_R16G16B16A16_UNORM; } break; case PixelFormat::F16: switch (channel_count) { - case 1: return VK_FORMAT_R16_SFLOAT; - case 2: return VK_FORMAT_R16G16_SFLOAT; - case 3: return VK_FORMAT_R16G16B16_SFLOAT; - case 4: return VK_FORMAT_R16G16B16A16_SFLOAT; + case 1: + return VK_FORMAT_R16_SFLOAT; + case 2: + return VK_FORMAT_R16G16_SFLOAT; + case 3: + return VK_FORMAT_R16G16B16_SFLOAT; + case 4: + return VK_FORMAT_R16G16B16A16_SFLOAT; } break; case PixelFormat::F32: switch (channel_count) { - case 1: return VK_FORMAT_R32_SFLOAT; - case 2: return VK_FORMAT_R32G32_SFLOAT; - case 3: return VK_FORMAT_R32G32B32_SFLOAT; - case 4: return VK_FORMAT_R32G32B32A32_SFLOAT; + case 1: + return VK_FORMAT_R32_SFLOAT; + case 2: + return VK_FORMAT_R32G32_SFLOAT; + case 3: + return VK_FORMAT_R32G32B32_SFLOAT; + case 4: + return VK_FORMAT_R32G32B32A32_SFLOAT; } break; case PixelFormat::INVALID: @@ -1175,10 +1220,11 @@ bool VulkanRenderer::IsColorAttachmentSupported(VkFormat format) const // Chooses a renderable Vulkan format and falls back from RGB to RGBA when a // driver does not expose 3-channel color attachment support. VkFormat VulkanRenderer::PickRenderableFormat(PixelFormat format, - int channel_count) const + int channel_count) const { VkFormat candidate = PixelFormatToVkFormat(format, channel_count); - if (candidate != VK_FORMAT_UNDEFINED && IsColorAttachmentSupported(candidate)) { + if (candidate != VK_FORMAT_UNDEFINED && + IsColorAttachmentSupported(candidate)) { return candidate; } @@ -1250,10 +1296,9 @@ float VulkanRenderer::GetFormatMaxAlpha(PixelFormat format) const // Copies tightly-packed pixels while changing channel count. This handles the // common Vulkan fallback where requested RGB data is stored as RGBA on the GPU. -void VulkanRenderer::CopyPixelsWithChannelConversion(const void *src, void *dst, - int width, int height, int depth, - int src_channels, int dst_channels, - PixelFormat format) const +void VulkanRenderer::CopyPixelsWithChannelConversion( + const void *src, void *dst, int width, int height, int depth, + int src_channels, int dst_channels, PixelFormat format) const { int src_bpc = VideoParams::GetBytesPerChannel(format); int dst_bpc = src_bpc; @@ -1269,31 +1314,30 @@ void VulkanRenderer::CopyPixelsWithChannelConversion(const void *src, void *dst, for (int c = 0; c < dst_channels; ++c) { if (c < src_channels) { memcpy(dst_ptr + (i * dst_channels + c) * dst_bpc, - src_ptr + (i * src_channels + c) * src_bpc, - dst_bpc); + src_ptr + (i * src_channels + c) * src_bpc, dst_bpc); } else { // Fill missing channels with 0 (color) or max alpha. if (c == 3) { if (format == PixelFormat::U8) { - *reinterpret_cast(dst_ptr + - (i * dst_channels + c) * dst_bpc) = + *reinterpret_cast( + dst_ptr + (i * dst_channels + c) * dst_bpc) = static_cast(alpha); } else if (format == PixelFormat::U16) { - *reinterpret_cast(dst_ptr + - (i * dst_channels + c) * dst_bpc) = + *reinterpret_cast( + dst_ptr + (i * dst_channels + c) * dst_bpc) = static_cast(alpha); } else if (format == PixelFormat::F16) { // Half-float 1.0: 0x3C00 - *reinterpret_cast(dst_ptr + - (i * dst_channels + c) * dst_bpc) = + *reinterpret_cast( + dst_ptr + (i * dst_channels + c) * dst_bpc) = 0x3C00; } else { - *reinterpret_cast(dst_ptr + - (i * dst_channels + c) * dst_bpc) = - alpha; + *reinterpret_cast( + dst_ptr + (i * dst_channels + c) * dst_bpc) = alpha; } } else { - memset(dst_ptr + (i * dst_channels + c) * dst_bpc, 0, dst_bpc); + memset(dst_ptr + (i * dst_channels + c) * dst_bpc, 0, + dst_bpc); } } } @@ -1323,8 +1367,9 @@ uint32_t VulkanRenderer::FindMemoryType(uint32_t type_filter, // Creates a Vulkan image, memory allocation, and image view for an Oak texture. QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, - PixelFormat format, int channel_count, - const void *data, int linesize) + PixelFormat format, + int channel_count, + const void *data, int linesize) { QMutexLocker lock(&mutex_); @@ -1357,9 +1402,9 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, image_info.format = vk_format; image_info.tiling = VK_IMAGE_TILING_OPTIMAL; image_info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - image_info.usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + image_info.usage = + VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; image_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; image_info.samples = VK_SAMPLE_COUNT_1_BIT; @@ -1375,10 +1420,11 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, VkMemoryAllocateInfo alloc_info = {}; alloc_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; alloc_info.allocationSize = mem_req.size; - alloc_info.memoryTypeIndex = - FindMemoryType(mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + alloc_info.memoryTypeIndex = FindMemoryType( + mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); if (alloc_info.memoryTypeIndex == UINT32_MAX) { - qWarning() << "Failed to find device-local memory type for Vulkan image"; + qWarning() + << "Failed to find device-local memory type for Vulkan image"; vkDestroyImage(device_, tex->image, nullptr); delete tex; return QVariant(); @@ -1386,7 +1432,8 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, result = vkAllocateMemory(device_, &alloc_info, nullptr, &tex->memory); if (result != VK_SUCCESS) { - qWarning() << "Failed to allocate device memory for Vulkan image:" << result; + qWarning() + << "Failed to allocate device memory for Vulkan image:" << result; vkDestroyImage(device_, tex->image, nullptr); delete tex; return QVariant(); @@ -1404,7 +1451,8 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, VkImageViewCreateInfo view_info = {}; view_info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; view_info.image = tex->image; - view_info.viewType = depth > 1 ? VK_IMAGE_VIEW_TYPE_3D : VK_IMAGE_VIEW_TYPE_2D; + view_info.viewType = depth > 1 ? VK_IMAGE_VIEW_TYPE_3D : + VK_IMAGE_VIEW_TYPE_2D; view_info.format = vk_format; view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; view_info.subresourceRange.baseMipLevel = 0; @@ -1431,13 +1479,14 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, // Upload initial data if provided if (data) { - int cpu_bytes_per_pixel = VideoParams::GetBytesPerPixel(format, channel_count); + int cpu_bytes_per_pixel = + VideoParams::GetBytesPerPixel(format, channel_count); int gpu_bytes_per_pixel = GetVkFormatBytesPerPixel(vk_format); if (gpu_bytes_per_pixel == 0) { gpu_bytes_per_pixel = cpu_bytes_per_pixel; } - VkDeviceSize image_size = static_cast(width) * height * depth * - gpu_bytes_per_pixel; + VkDeviceSize image_size = static_cast(width) * height * + depth * gpu_bytes_per_pixel; if (linesize == 0) { linesize = width; } @@ -1455,9 +1504,10 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, char *dst = static_cast(mapped); const char *src = static_cast(data); for (int row = 0; row < height * depth; row++) { - memcpy(dst + row * width * cpu_bytes_per_pixel, - src + row * row_stride_bytes, - static_cast(width * cpu_bytes_per_pixel)); + memcpy( + dst + row * width * cpu_bytes_per_pixel, + src + row * row_stride_bytes, + static_cast(width * cpu_bytes_per_pixel)); } } } else { @@ -1472,23 +1522,25 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, char *dst = tmp.data(); const char *src = static_cast(data); for (int row = 0; row < height * depth; row++) { - memcpy(dst + row * width * cpu_bytes_per_pixel, - src + row * row_stride_bytes, - static_cast(width * cpu_bytes_per_pixel)); + memcpy( + dst + row * width * cpu_bytes_per_pixel, + src + row * row_stride_bytes, + static_cast(width * cpu_bytes_per_pixel)); } } int gpu_channels = gpu_bytes_per_pixel / VideoParams::GetBytesPerChannel(format); - CopyPixelsWithChannelConversion(tmp.constData(), mapped, - width, height, depth, - channel_count, gpu_channels, - format); + CopyPixelsWithChannelConversion(tmp.constData(), mapped, width, + height, depth, channel_count, + gpu_channels, format); } vkUnmapMemory(device_, staging_memory); VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return QVariant(); } + if (cmd == VK_NULL_HANDLE) { + return QVariant(); + } TransitionImageLayout(cmd, tex->image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); CopyBufferToImage(cmd, staging_buffer, tex->image, @@ -1505,7 +1557,9 @@ QVariant VulkanRenderer::CreateNativeTexture(int width, int height, int depth, } } else { VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return QVariant(); } + if (cmd == VK_NULL_HANDLE) { + return QVariant(); + } TransitionImageLayout(cmd, tex->image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); EndOneTimeCommands(cmd); @@ -1543,8 +1597,8 @@ void VulkanRenderer::DestroyNativeTexture(QVariant texture) // Uploads CPU pixels to an existing image. The staging layout is based on the // selected GPU VkFormat, then CPU data is repacked when channel counts differ. void VulkanRenderer::UploadToTexture(const QVariant &handle, - const VideoParams ¶ms, const void *data, - int linesize) + const VideoParams ¶ms, + const void *data, int linesize) { QMutexLocker lock(&mutex_); quint64 id = handle.value(); @@ -1556,8 +1610,8 @@ void VulkanRenderer::UploadToTexture(const QVariant &handle, int width = params.effective_width(); int height = params.effective_height(); int depth = params.effective_depth(); - int cpu_bytes_per_pixel = VideoParams::GetBytesPerPixel(params.format(), - params.channel_count()); + int cpu_bytes_per_pixel = + VideoParams::GetBytesPerPixel(params.format(), params.channel_count()); int gpu_bytes_per_pixel = GetVkFormatBytesPerPixel(tex->vk_format); if (gpu_bytes_per_pixel == 0) { gpu_bytes_per_pixel = cpu_bytes_per_pixel; @@ -1605,16 +1659,17 @@ void VulkanRenderer::UploadToTexture(const QVariant &handle, } int gpu_channels = gpu_bytes_per_pixel / VideoParams::GetBytesPerChannel(params.format()); - CopyPixelsWithChannelConversion(tmp.constData(), mapped, - width, height, depth, - params.channel_count(), gpu_channels, - params.format()); + CopyPixelsWithChannelConversion(tmp.constData(), mapped, width, height, + depth, params.channel_count(), + gpu_channels, params.format()); } vkUnmapMemory(device_, staging_memory); VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return; } + if (cmd == VK_NULL_HANDLE) { + return; + } if (tex->current_layout != VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) { TransitionImageLayout(cmd, tex->image, tex->current_layout, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); @@ -1634,8 +1689,8 @@ void VulkanRenderer::UploadToTexture(const QVariant &handle, // Downloads an image to CPU memory. When the GPU format is wider than the // requested CPU format, the staging data is compacted back to the caller layout. void VulkanRenderer::DownloadFromTexture(const QVariant &handle, - const VideoParams ¶ms, void *data, - int linesize) + const VideoParams ¶ms, void *data, + int linesize) { QMutexLocker lock(&mutex_); quint64 id = handle.value(); @@ -1646,8 +1701,8 @@ void VulkanRenderer::DownloadFromTexture(const QVariant &handle, int width = params.effective_width(); int height = params.effective_height(); - int cpu_bytes_per_pixel = VideoParams::GetBytesPerPixel(params.format(), - params.channel_count()); + int cpu_bytes_per_pixel = + VideoParams::GetBytesPerPixel(params.format(), params.channel_count()); int gpu_bytes_per_pixel = GetVkFormatBytesPerPixel(tex->vk_format); if (gpu_bytes_per_pixel == 0) { gpu_bytes_per_pixel = cpu_bytes_per_pixel; @@ -1667,7 +1722,9 @@ void VulkanRenderer::DownloadFromTexture(const QVariant &handle, VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return; } + if (cmd == VK_NULL_HANDLE) { + return; + } if (tex->current_layout != VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) { TransitionImageLayout(cmd, tex->image, tex->current_layout, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); @@ -1696,10 +1753,9 @@ void VulkanRenderer::DownloadFromTexture(const QVariant &handle, VideoParams::GetBytesPerChannel(params.format()); QByteArray tmp(width * height * gpu_bytes_per_pixel, Qt::Uninitialized); memcpy(tmp.data(), mapped, static_cast(tmp.size())); - CopyPixelsWithChannelConversion(tmp.constData(), data, - width, height, 1, - gpu_channels, params.channel_count(), - params.format()); + CopyPixelsWithChannelConversion(tmp.constData(), data, width, height, 1, + gpu_channels, params.channel_count(), + params.format()); if (linesize != width) { // Repack from tight CPU layout to caller's stride in-place. QByteArray tight(static_cast(data), @@ -1728,14 +1784,16 @@ void VulkanRenderer::Flush() // Clears a texture with vkCmdClearColorImage; null destinations are ignored // because this backend has no implicit swapchain framebuffer. -void VulkanRenderer::ClearDestination(olive::Texture *texture, double r, double g, - double b, double a) +void VulkanRenderer::ClearDestination(olive::Texture *texture, double r, + double g, double b, double a) { QMutexLocker lock(&mutex_); VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return; } + if (cmd == VK_NULL_HANDLE) { + return; + } if (texture) { quint64 id = texture->id().value(); VulkanTexture *tex = textures_.value(id); @@ -1758,9 +1816,11 @@ void VulkanRenderer::ClearDestination(olive::Texture *texture, double r, double range.levelCount = 1; range.baseArrayLayer = 0; range.layerCount = 1; - vkCmdClearColorImage(cmd, tex->image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - &clear_color, 1, &range); - TransitionImageLayout(cmd, tex->image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + vkCmdClearColorImage(cmd, tex->image, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clear_color, + 1, &range); + TransitionImageLayout(cmd, tex->image, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); tex->current_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; } @@ -1769,13 +1829,13 @@ void VulkanRenderer::ClearDestination(olive::Texture *texture, double r, double // Reads one pixel by copying a 1x1 image region into a staging buffer. Color VulkanRenderer::GetPixelFromTexture(olive::Texture *texture, - const QPointF &pt) + const QPointF &pt) { if (!texture) { return Color(); } - int cpu_bytes_per_pixel = VideoParams::GetBytesPerPixel(texture->format(), - texture->channel_count()); + int cpu_bytes_per_pixel = VideoParams::GetBytesPerPixel( + texture->format(), texture->channel_count()); QByteArray data(cpu_bytes_per_pixel, Qt::Uninitialized); quint64 id = texture->id().value(); @@ -1785,8 +1845,10 @@ Color VulkanRenderer::GetPixelFromTexture(olive::Texture *texture, return Color(); } - uint32_t px = static_cast(qBound(0.0, pt.x(), double(tex->width - 1))); - uint32_t py = static_cast(qBound(0.0, pt.y(), double(tex->height - 1))); + uint32_t px = + static_cast(qBound(0.0, pt.x(), double(tex->width - 1))); + uint32_t py = + static_cast(qBound(0.0, pt.y(), double(tex->height - 1))); int gpu_bytes_per_pixel = GetVkFormatBytesPerPixel(tex->vk_format); if (gpu_bytes_per_pixel == 0) { @@ -1795,13 +1857,16 @@ Color VulkanRenderer::GetPixelFromTexture(olive::Texture *texture, VkBuffer staging_buffer; VkDeviceMemory staging_memory; - if (!CreateStagingBuffer(gpu_bytes_per_pixel, &staging_buffer, &staging_memory)) { + if (!CreateStagingBuffer(gpu_bytes_per_pixel, &staging_buffer, + &staging_memory)) { return Color(); } VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return Color(); } + if (cmd == VK_NULL_HANDLE) { + return Color(); + } if (tex->current_layout != VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) { TransitionImageLayout(cmd, tex->image, tex->current_layout, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); @@ -1817,11 +1882,12 @@ Color VulkanRenderer::GetPixelFromTexture(olive::Texture *texture, int gpu_channels = gpu_bytes_per_pixel / VideoParams::GetBytesPerChannel(texture->format()); QByteArray gpu_pixel(gpu_bytes_per_pixel, Qt::Uninitialized); - memcpy(gpu_pixel.data(), mapped, static_cast(gpu_bytes_per_pixel)); - CopyPixelsWithChannelConversion(gpu_pixel.constData(), data.data(), - 1, 1, 1, - gpu_channels, texture->channel_count(), - texture->format()); + memcpy(gpu_pixel.data(), mapped, + static_cast(gpu_bytes_per_pixel)); + CopyPixelsWithChannelConversion(gpu_pixel.constData(), data.data(), 1, + 1, 1, gpu_channels, + texture->channel_count(), + texture->format()); } vkUnmapMemory(device_, staging_memory); @@ -1861,7 +1927,7 @@ QString VulkanRenderer::EnsureGlslVersion450(const QString &glsl) const // semantics but replaces implicit attributes/varyings and texture sampling with // explicit layouts that Vulkan requires. QString VulkanRenderer::ConvertGlslToVulkan(const QString &glsl, - VkShaderStageFlagBits stage) + VkShaderStageFlagBits stage) { QString result = glsl; @@ -1871,20 +1937,25 @@ QString VulkanRenderer::ConvertGlslToVulkan(const QString &glsl, // Ensure fragment shader output has layout if (stage == VK_SHADER_STAGE_FRAGMENT_BIT) { - result.replace(QStringLiteral("out vec4 frag_color;"), - QStringLiteral("layout(location = 0) out vec4 frag_color;")); - result.replace(QStringLiteral("in vec2 ove_texcoord;"), - QStringLiteral("layout(location = 0) in vec2 ove_texcoord;")); + result.replace( + QStringLiteral("out vec4 frag_color;"), + QStringLiteral("layout(location = 0) out vec4 frag_color;")); + result.replace( + QStringLiteral("in vec2 ove_texcoord;"), + QStringLiteral("layout(location = 0) in vec2 ove_texcoord;")); } // Add layout to vertex attributes and varyings if (stage == VK_SHADER_STAGE_VERTEX_BIT) { - result.replace(QStringLiteral("in vec4 a_position;"), - QStringLiteral("layout(location = 0) in vec4 a_position;")); - result.replace(QStringLiteral("in vec2 a_texcoord;"), - QStringLiteral("layout(location = 1) in vec2 a_texcoord;")); - result.replace(QStringLiteral("out vec2 ove_texcoord;"), - QStringLiteral("layout(location = 0) out vec2 ove_texcoord;")); + result.replace( + QStringLiteral("in vec4 a_position;"), + QStringLiteral("layout(location = 0) in vec4 a_position;")); + result.replace( + QStringLiteral("in vec2 a_texcoord;"), + QStringLiteral("layout(location = 1) in vec2 a_texcoord;")); + result.replace( + QStringLiteral("out vec2 ove_texcoord;"), + QStringLiteral("layout(location = 0) out vec2 ove_texcoord;")); } return result; @@ -1893,32 +1964,44 @@ QString VulkanRenderer::ConvertGlslToVulkan(const QString &glsl, // Returns the std140 storage size for scalar, vector, color, and matrix values. VkDeviceSize VulkanRenderer::GetStd140Size(const QString &type) const { - if (type == QStringLiteral("float")) return 4; - if (type == QStringLiteral("vec2")) return 8; - if (type == QStringLiteral("vec3")) return 12; - if (type == QStringLiteral("vec4")) return 16; - if (type == QStringLiteral("mat4")) return 64; - if (type == QStringLiteral("int") || type == QStringLiteral("bool")) return 4; + if (type == QStringLiteral("float")) + return 4; + if (type == QStringLiteral("vec2")) + return 8; + if (type == QStringLiteral("vec3")) + return 12; + if (type == QStringLiteral("vec4")) + return 16; + if (type == QStringLiteral("mat4")) + return 64; + if (type == QStringLiteral("int") || type == QStringLiteral("bool")) + return 4; return 4; } // Returns std140 base alignment so generated UBO offsets match GPU layout rules. VkDeviceSize VulkanRenderer::GetStd140Alignment(const QString &type) const { - if (type == QStringLiteral("float")) return 4; - if (type == QStringLiteral("vec2")) return 8; - if (type == QStringLiteral("vec3")) return 16; - if (type == QStringLiteral("vec4")) return 16; - if (type == QStringLiteral("mat4")) return 16; - if (type == QStringLiteral("int") || type == QStringLiteral("bool")) return 4; + if (type == QStringLiteral("float")) + return 4; + if (type == QStringLiteral("vec2")) + return 8; + if (type == QStringLiteral("vec3")) + return 16; + if (type == QStringLiteral("vec4")) + return 16; + if (type == QStringLiteral("mat4")) + return 16; + if (type == QStringLiteral("int") || type == QStringLiteral("bool")) + return 4; return 4; } // Scans GLSL uniform declarations and splits them into samplers and values. This // is intentionally narrow and targets the shader style generated by Oak nodes. void VulkanRenderer::ExtractUniforms(const QString &glsl, - QVector *out_uniforms, - QVector *out_samplers) const + QVector *out_uniforms, + QVector *out_samplers) const { static const QRegularExpression re( QStringLiteral(R"(^\s*uniform\s+(\w+)\s+(\w+)\s*;)"), @@ -1968,13 +2051,15 @@ void VulkanRenderer::ComputeUniformLayout(QVector *uniforms) const } // Generates the uniform block source inserted into rewritten shaders. -QString VulkanRenderer::BuildUboBlock(const QVector &uniforms) const +QString +VulkanRenderer::BuildUboBlock(const QVector &uniforms) const { if (uniforms.isEmpty()) { return QString(); } - QString ubo = QStringLiteral("\nlayout(set = 0, binding = 0) uniform UniformBuffer {\n"); + QString ubo = QStringLiteral( + "\nlayout(set = 0, binding = 0) uniform UniformBuffer {\n"); for (const UniformInfo &info : uniforms) { ubo += QStringLiteral(" %1 %2;\n").arg(info.type, info.name); } @@ -1985,8 +2070,7 @@ QString VulkanRenderer::BuildUboBlock(const QVector &uniforms) cons // Rewrites GLSL so non-sampler uniforms live in set=0,binding=0 and sampler // uniforms get deterministic explicit bindings after the UBO. QString VulkanRenderer::RewriteShaderWithUbo( - const QString &glsl, - const QVector &all_uniforms, + const QString &glsl, const QVector &all_uniforms, const QHash &sampler_bindings) const { QString result = glsl; @@ -2010,9 +2094,11 @@ QString VulkanRenderer::RewriteShaderWithUbo( if (IsSamplerType(type)) { int binding = sampler_bindings.value(name, -1); if (binding >= 0) { - QString new_decl = QStringLiteral( - "layout(set = 0, binding = %1) uniform %2 %3;") - .arg(binding).arg(type, name); + QString new_decl = + QStringLiteral( + "layout(set = 0, binding = %1) uniform %2 %3;") + .arg(binding) + .arg(type, name); result.replace(m.capturedStart(), m.capturedLength(), new_decl); } } else { @@ -2042,7 +2128,6 @@ QString VulkanRenderer::RewriteShaderWithUbo( return result; } - // Compiles Vulkan GLSL into SPIR-V using shaderc. Without shaderc this backend // can initialize but cannot create shaders. bool VulkanRenderer::CompileGlslToSpv(const QString &glsl, @@ -2172,18 +2257,24 @@ QVariant VulkanRenderer::CreateNativeShader(olive::ShaderCode code) sampler_bindings[all_samplers[i]] = 1 + i; } - QString converted_vert = RewriteShaderWithUbo(vert_code, all_uniforms, sampler_bindings); - QString converted_frag = RewriteShaderWithUbo(frag_code, all_uniforms, sampler_bindings); + QString converted_vert = + RewriteShaderWithUbo(vert_code, all_uniforms, sampler_bindings); + QString converted_frag = + RewriteShaderWithUbo(frag_code, all_uniforms, sampler_bindings); - converted_vert = ConvertGlslToVulkan(converted_vert, VK_SHADER_STAGE_VERTEX_BIT); - converted_frag = ConvertGlslToVulkan(converted_frag, VK_SHADER_STAGE_FRAGMENT_BIT); + converted_vert = + ConvertGlslToVulkan(converted_vert, VK_SHADER_STAGE_VERTEX_BIT); + converted_frag = + ConvertGlslToVulkan(converted_frag, VK_SHADER_STAGE_FRAGMENT_BIT); - if (!CompileGlslToSpv(converted_vert, VK_SHADER_STAGE_VERTEX_BIT, &vert_spv)) { + if (!CompileGlslToSpv(converted_vert, VK_SHADER_STAGE_VERTEX_BIT, + &vert_spv)) { fprintf(stderr, "Failed to compile Vulkan vertex shader:\n%s\n", converted_vert.toUtf8().constData()); return QVariant(); } - if (!CompileGlslToSpv(converted_frag, VK_SHADER_STAGE_FRAGMENT_BIT, &frag_spv)) { + if (!CompileGlslToSpv(converted_frag, VK_SHADER_STAGE_FRAGMENT_BIT, + &frag_spv)) { fprintf(stderr, "Failed to compile Vulkan fragment shader:\n%s\n", converted_frag.toUtf8().constData()); return QVariant(); @@ -2204,8 +2295,8 @@ QVariant VulkanRenderer::CreateNativeShader(olive::ShaderCode code) vert_info.codeSize = static_cast(vert_spv.size()); vert_info.pCode = reinterpret_cast(vert_spv.constData()); - VkResult result = vkCreateShaderModule(device_, &vert_info, nullptr, - &sh->vert_module); + VkResult result = + vkCreateShaderModule(device_, &vert_info, nullptr, &sh->vert_module); if (result != VK_SUCCESS) { delete sh; return QVariant(); @@ -2216,7 +2307,8 @@ QVariant VulkanRenderer::CreateNativeShader(olive::ShaderCode code) frag_info.codeSize = static_cast(frag_spv.size()); frag_info.pCode = reinterpret_cast(frag_spv.constData()); - result = vkCreateShaderModule(device_, &frag_info, nullptr, &sh->frag_module); + result = + vkCreateShaderModule(device_, &frag_info, nullptr, &sh->frag_module); if (result != VK_SUCCESS) { vkDestroyShaderModule(device_, sh->vert_module, nullptr); delete sh; @@ -2244,7 +2336,7 @@ QVariant VulkanRenderer::CreateNativeShader(olive::ShaderCode code) VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; sampler_binding.descriptorCount = 1; sampler_binding.stageFlags = VK_SHADER_STAGE_VERTEX_BIT | - VK_SHADER_STAGE_FRAGMENT_BIT; + VK_SHADER_STAGE_FRAGMENT_BIT; bindings.append(sampler_binding); } @@ -2254,7 +2346,7 @@ QVariant VulkanRenderer::CreateNativeShader(olive::ShaderCode code) ds_layout_info.pBindings = bindings.constData(); result = vkCreateDescriptorSetLayout(device_, &ds_layout_info, nullptr, - &sh->descriptor_layout); + &sh->descriptor_layout); if (result != VK_SUCCESS) { vkDestroyShaderModule(device_, sh->frag_module, nullptr); vkDestroyShaderModule(device_, sh->vert_module, nullptr); @@ -2268,7 +2360,7 @@ QVariant VulkanRenderer::CreateNativeShader(olive::ShaderCode code) layout_info.pSetLayouts = &sh->descriptor_layout; result = vkCreatePipelineLayout(device_, &layout_info, nullptr, - &sh->pipeline_layout); + &sh->pipeline_layout); if (result != VK_SUCCESS) { vkDestroyDescriptorSetLayout(device_, sh->descriptor_layout, nullptr); vkDestroyShaderModule(device_, sh->frag_module, nullptr); @@ -2281,7 +2373,6 @@ QVariant VulkanRenderer::CreateNativeShader(olive::ShaderCode code) return QVariant::fromValue(sh->id); } - // Releases shader modules, descriptor layout, pipeline layout, and pipelines. void VulkanRenderer::DestroyNativeShader(QVariant shader) { @@ -2291,7 +2382,8 @@ void VulkanRenderer::DestroyNativeShader(QVariant shader) if (!sh) { return; } - for (auto it = sh->pipeline_cache.begin(); it != sh->pipeline_cache.end(); ++it) { + for (auto it = sh->pipeline_cache.begin(); it != sh->pipeline_cache.end(); + ++it) { if (it.value() != VK_NULL_HANDLE) { vkDestroyPipeline(device_, it.value(), nullptr); } @@ -2317,7 +2409,7 @@ void VulkanRenderer::DestroyNativeShader(QVariant shader) bool VulkanRenderer::CreatePipelineForShader(VulkanShader *shader, const VideoParams &dest_params, - VkFormat render_pass_format) + VkFormat render_pass_format) { if (shader->pipeline_cache.contains(render_pass_format)) { return true; @@ -2338,7 +2430,8 @@ bool VulkanRenderer::CreatePipelineForShader(VulkanShader *shader, VkPipelineShaderStageCreateInfo stages[] = { vert_stage, frag_stage }; VkPipelineVertexInputStateCreateInfo vertex_input = {}; - vertex_input.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; + vertex_input.sType = + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; VkVertexInputBindingDescription binding_desc = {}; binding_desc.binding = 0; @@ -2361,7 +2454,8 @@ bool VulkanRenderer::CreatePipelineForShader(VulkanShader *shader, vertex_input.pVertexAttributeDescriptions = attrs; VkPipelineInputAssemblyStateCreateInfo input_assembly = {}; - input_assembly.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; + input_assembly.sType = + VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; input_assembly.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; VkViewport viewport = {}; @@ -2372,38 +2466,44 @@ bool VulkanRenderer::CreatePipelineForShader(VulkanShader *shader, VkRect2D scissor = {}; scissor.extent.width = static_cast(dest_params.effective_width()); - scissor.extent.height = static_cast(dest_params.effective_height()); + scissor.extent.height = + static_cast(dest_params.effective_height()); VkPipelineViewportStateCreateInfo viewport_state = {}; - viewport_state.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; + viewport_state.sType = + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; viewport_state.viewportCount = 1; viewport_state.pViewports = &viewport; viewport_state.scissorCount = 1; viewport_state.pScissors = &scissor; VkPipelineRasterizationStateCreateInfo rasterizer = {}; - rasterizer.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO; + rasterizer.sType = + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO; rasterizer.polygonMode = VK_POLYGON_MODE_FILL; rasterizer.cullMode = VK_CULL_MODE_NONE; rasterizer.frontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE; rasterizer.lineWidth = 1.0f; VkPipelineMultisampleStateCreateInfo multisampling = {}; - multisampling.sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; + multisampling.sType = + VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; multisampling.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT; VkPipelineColorBlendAttachmentState color_blend = {}; - color_blend.colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | - VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT; + color_blend.colorWriteMask = + VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | + VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT; color_blend.blendEnable = VK_FALSE; VkPipelineColorBlendStateCreateInfo color_blending = {}; - color_blending.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; + color_blending.sType = + VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; color_blending.attachmentCount = 1; color_blending.pAttachments = &color_blend; VkDynamicState dynamic_states[] = { VK_DYNAMIC_STATE_VIEWPORT, - VK_DYNAMIC_STATE_SCISSOR }; + VK_DYNAMIC_STATE_SCISSOR }; VkPipelineDynamicStateCreateInfo dynamic_state = {}; dynamic_state.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; dynamic_state.dynamicStateCount = 2; @@ -2425,9 +2525,8 @@ bool VulkanRenderer::CreatePipelineForShader(VulkanShader *shader, pipeline_info.subpass = 0; VkPipeline new_pipeline = VK_NULL_HANDLE; - VkResult result = vkCreateGraphicsPipelines(device_, VK_NULL_HANDLE, 1, - &pipeline_info, nullptr, - &new_pipeline); + VkResult result = vkCreateGraphicsPipelines( + device_, VK_NULL_HANDLE, 1, &pipeline_info, nullptr, &new_pipeline); if (result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan graphics pipeline:" << result; return false; @@ -2452,12 +2551,14 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, } VkFormat render_pass_format = dest_tex->vk_format; - VkRenderPass render_pass = GetOrCreateRenderPass(render_pass_format, clear_destination); + VkRenderPass render_pass = + GetOrCreateRenderPass(render_pass_format, clear_destination); if (render_pass == VK_NULL_HANDLE) { return; } - if (!CreatePipelineForShader(shader, destination_params, render_pass_format)) { + if (!CreatePipelineForShader(shader, destination_params, + render_pass_format)) { return; } @@ -2476,7 +2577,7 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, fb_info.height = static_cast(dest_tex->height); fb_info.layers = 1; VkResult fb_result = vkCreateFramebuffer(device_, &fb_info, nullptr, - &dest_tex->framebuffer); + &dest_tex->framebuffer); if (fb_result != VK_SUCCESS) { qWarning() << "Failed to create Vulkan framebuffer:" << fb_result; return; @@ -2491,7 +2592,8 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, if (CreateStagingBuffer(shader->ubo_size, &ubo_buffer, &ubo_memory)) { void *mapped; vkMapMemory(device_, ubo_memory, 0, shader->ubo_size, 0, &mapped); - memcpy(mapped, ubo_data.constData(), static_cast(shader->ubo_size)); + memcpy(mapped, ubo_data.constData(), + static_cast(shader->ubo_size)); vkUnmapMemory(device_, ubo_memory); } } @@ -2514,7 +2616,8 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, ds_alloc.descriptorSetCount = 1; ds_alloc.pSetLayouts = &shader->descriptor_layout; - VkResult result = vkAllocateDescriptorSets(device_, &ds_alloc, &descriptor_set); + VkResult result = + vkAllocateDescriptorSets(device_, &ds_alloc, &descriptor_set); if (result != VK_SUCCESS) { qWarning() << "Failed to allocate Vulkan descriptor set:" << result; if (ubo_buffer != VK_NULL_HANDLE) { @@ -2568,7 +2671,8 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, write.dstSet = descriptor_set; write.dstBinding = static_cast(binding); write.dstArrayElement = 0; - write.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + write.descriptorType = + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; write.descriptorCount = 1; write.pImageInfo = &image_infos.last(); writes.append(write); @@ -2576,14 +2680,16 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, } if (!writes.isEmpty()) { - vkUpdateDescriptorSets(device_, writes.size(), writes.constData(), 0, - nullptr); + vkUpdateDescriptorSets(device_, writes.size(), writes.constData(), + 0, nullptr); } } VkCommandBuffer cmd = BeginOneTimeCommands(); - if (cmd == VK_NULL_HANDLE) { return; } + if (cmd == VK_NULL_HANDLE) { + return; + } if (dest_tex->current_layout != VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) { TransitionImageLayout(cmd, dest_tex->image, dest_tex->current_layout, @@ -2592,7 +2698,8 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, } for (const TextureBinding &tb : bindings) { - if (tb.tex && tb.tex->current_layout != VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { + if (tb.tex && tb.tex->current_layout != + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { TransitionImageLayout(cmd, tb.tex->image, tb.tex->current_layout, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); tb.tex->current_layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; @@ -2642,8 +2749,8 @@ void VulkanRenderer::BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, // Bind descriptor set if (descriptor_set != VK_NULL_HANDLE) { vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, - shader->pipeline_layout, 0, 1, &descriptor_set, 0, - nullptr); + shader->pipeline_layout, 0, 1, &descriptor_set, + 0, nullptr); } // Draw @@ -2722,7 +2829,8 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, quint64 final_id = final_tex.texture->id().value(); final_tex.native = textures_.value(final_id); if (!final_tex.native) { - qWarning() << "VulkanRenderer::Blit failed to resolve temporary destination texture"; + qWarning() + << "VulkanRenderer::Blit failed to resolve temporary destination texture"; return; } dest_tex = final_tex.native; @@ -2745,8 +2853,8 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, base_ubo_data.fill(0); } - for (auto it = job.GetValues().constBegin(); it != job.GetValues().constEnd(); - ++it) { + for (auto it = job.GetValues().constBegin(); + it != job.GetValues().constEnd(); ++it) { const NodeValue &value = it.value(); if (value.type() == NodeValue::kTexture) { TexturePtr texture = value.toTexture(); @@ -2755,8 +2863,8 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, quint64 tid = texture->id().value(); vtex = textures_.value(tid); } - base_bindings.append({ it.key(), vtex, - job.GetInterpolation(it.key()) }); + base_bindings.append( + { it.key(), vtex, job.GetInterpolation(it.key()) }); } else if (!shader->uniforms.isEmpty() && shader->ubo_size > 0) { // Find matching uniform for (const UniformInfo &u : shader->uniforms) { @@ -2765,10 +2873,12 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, char *dst = base_ubo_data.data() + static_cast(u.offset); switch (value.type()) { case NodeValue::kFloat: - *reinterpret_cast(dst) = static_cast(value.toDouble()); + *reinterpret_cast(dst) = + static_cast(value.toDouble()); break; case NodeValue::kInt: - *reinterpret_cast(dst) = static_cast(value.toInt()); + *reinterpret_cast(dst) = + static_cast(value.toInt()); break; case NodeValue::kBoolean: *reinterpret_cast(dst) = value.toBool() ? 1 : 0; @@ -2821,12 +2931,16 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, QMatrix4x4 m = job.Get(QStringLiteral("ove_mvpmat")).toMatrix(); memcpy(dst, m.constData(), sizeof(float) * 16); } else if (u.name == QStringLiteral("ove_cropmatrix")) { - QMatrix4x4 m = job.Get(QStringLiteral("ove_cropmatrix")).toMatrix(); + QMatrix4x4 m = + job.Get(QStringLiteral("ove_cropmatrix")).toMatrix(); memcpy(dst, m.constData(), sizeof(float) * 16); } else if (u.name == QStringLiteral("ove_maintex_alpha")) { - *reinterpret_cast(dst) = job.Get(QStringLiteral("ove_maintex_alpha")).toInt(); + *reinterpret_cast(dst) = + job.Get(QStringLiteral("ove_maintex_alpha")).toInt(); } else if (u.name == QStringLiteral("ove_force_opaque")) { - *reinterpret_cast(dst) = job.Get(QStringLiteral("ove_force_opaque")).toBool() ? 1 : 0; + *reinterpret_cast(dst) = + job.Get(QStringLiteral("ove_force_opaque")).toBool() ? 1 : + 0; } } } @@ -2837,7 +2951,8 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, QString enabled_name = tb.name + QStringLiteral("_enabled"); for (const UniformInfo &u : shader->uniforms) { if (u.name == enabled_name && u.size == sizeof(int)) { - char *dst = base_ubo_data.data() + static_cast(u.offset); + char *dst = + base_ubo_data.data() + static_cast(u.offset); *reinterpret_cast(dst) = tb.tex ? 1 : 0; break; } @@ -2853,7 +2968,8 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, if (shader->ubo_size > 0) { for (const UniformInfo &u : shader->uniforms) { if (u.name == QStringLiteral("ove_iteration")) { - char *dst = pass_ubo_data.data() + static_cast(u.offset); + char *dst = + pass_ubo_data.data() + static_cast(u.offset); *reinterpret_cast(dst) = iteration; break; } @@ -2887,5 +3003,4 @@ void VulkanRenderer::Blit(QVariant shader_variant, olive::AcceleratedJob &a_job, } } - } // namespace olive diff --git a/app/render/vulkan/vulkanrenderer.h b/app/render/vulkan/vulkanrenderer.h index c0d66a17e..48687b8f9 100644 --- a/app/render/vulkan/vulkanrenderer.h +++ b/app/render/vulkan/vulkanrenderer.h @@ -51,8 +51,8 @@ public: // Clears either a texture render target or the currently bound output target. virtual void ClearDestination(olive::Texture *texture = nullptr, - double r = 0.0, double g = 0.0, - double b = 0.0, double a = 0.0) override; + double r = 0.0, double g = 0.0, + double b = 0.0, double a = 0.0) override; // Compiles GLSL to SPIR-V, creates shader modules, and prepares descriptor // metadata for later blits. @@ -63,12 +63,12 @@ public: // Uploads CPU pixel data to a Vulkan image via a staging buffer. virtual void UploadToTexture(const QVariant &handle, - const VideoParams ¶ms, const void *data, - int linesize) override; + const VideoParams ¶ms, const void *data, + int linesize) override; // Downloads a Vulkan image to CPU memory via a staging buffer. virtual void DownloadFromTexture(const QVariant &handle, - const VideoParams ¶ms, void *data, - int linesize) override; + const VideoParams ¶ms, void *data, + int linesize) override; // Waits for outstanding device work to complete. virtual void Flush() override; @@ -80,7 +80,7 @@ public: // Reads a single texture pixel using a one-pixel transfer readback. virtual Color GetPixelFromTexture(olive::Texture *texture, - const QPointF &pt) override; + const QPointF &pt) override; bool IsAvailable() const { @@ -90,14 +90,15 @@ public: protected: // Runs one or more fullscreen shader passes into the destination texture. virtual void Blit(QVariant shader, olive::AcceleratedJob &job, - olive::Texture *destination, VideoParams destination_params, - bool clear_destination) override; + olive::Texture *destination, + VideoParams destination_params, + bool clear_destination) override; // Creates a Vulkan image/view/memory bundle and optionally uploads initial // pixel data. virtual QVariant CreateNativeTexture(int width, int height, int depth, - PixelFormat format, int channel_count, - const void *data = nullptr, - int linesize = 0) override; + PixelFormat format, int channel_count, + const void *data = nullptr, + int linesize = 0) override; // Releases a Vulkan texture bundle. virtual void DestroyNativeTexture(QVariant texture) override; // Releases all Vulkan device resources owned by this renderer. @@ -172,10 +173,10 @@ private: float GetFormatMaxAlpha(PixelFormat format) const; // Repackages tightly packed pixels when the requested CPU channel count // differs from the selected GPU format channel count. - void CopyPixelsWithChannelConversion(const void *src, void *dst, - int width, int height, int depth, - int src_channels, int dst_channels, - PixelFormat format) const; + void CopyPixelsWithChannelConversion(const void *src, void *dst, int width, + int height, int depth, + int src_channels, int dst_channels, + PixelFormat format) const; // Rounds a size up to the requested alignment. VkDeviceSize AlignSize(VkDeviceSize size, VkDeviceSize alignment) const; @@ -187,11 +188,13 @@ private: bool CompileGlslToSpv(const QString &glsl, VkShaderStageFlagBits stage, QByteArray *out_spv); // Rewrites an Oak GLSL shader into Vulkan-compatible GLSL. - QString ConvertGlslToVulkan(const QString &glsl, VkShaderStageFlagBits stage); + QString ConvertGlslToVulkan(const QString &glsl, + VkShaderStageFlagBits stage); // Ensures a shader declares a Vulkan-compatible GLSL version. QString EnsureGlslVersion450(const QString &glsl) const; // Extracts uniforms and sampler names from GLSL declarations. - void ExtractUniforms(const QString &glsl, QVector *out_uniforms, + void ExtractUniforms(const QString &glsl, + QVector *out_uniforms, QVector *out_samplers) const; // Computes std140 offsets and total UBO size for extracted uniforms. void ComputeUniformLayout(QVector *uniforms) const; @@ -199,9 +202,10 @@ private: QString BuildUboBlock(const QVector &uniforms) const; // Rewrites standalone uniforms and samplers into explicit UBO/sampler // bindings accepted by Vulkan GLSL. - QString RewriteShaderWithUbo(const QString &glsl, - const QVector &all_uniforms, - const QHash &sampler_bindings) const; + QString + RewriteShaderWithUbo(const QString &glsl, + const QVector &all_uniforms, + const QHash &sampler_bindings) const; // Returns std140 storage size for a supported GLSL type. VkDeviceSize GetStd140Size(const QString &type) const; // Returns std140 alignment for a supported GLSL type. @@ -225,8 +229,8 @@ private: void BlitPass(VulkanShader *shader, VulkanTexture *dest_tex, const QVector &bindings, const QByteArray &ubo_data, - const VideoParams &destination_params, - bool clear_destination, int iteration); + const VideoParams &destination_params, bool clear_destination, + int iteration); VkInstance instance_ = VK_NULL_HANDLE; VkDebugUtilsMessengerEXT debug_messenger_ = VK_NULL_HANDLE; diff --git a/app/render/worker/workermain.cpp b/app/render/worker/workermain.cpp index 6dff951d7..3cc9d78d6 100644 --- a/app/render/worker/workermain.cpp +++ b/app/render/worker/workermain.cpp @@ -110,7 +110,6 @@ public: bool InitializeRuntime() { - // Create a minimal Core instance so that code paths calling Core::instance() // (e.g. ViewerOutput::data for timecode display) do not dereference null. // The worker is short-lived; leaking this on exit is harmless. @@ -141,7 +140,8 @@ public: QJsonObject handshake = hs.ToJson(); QOpenGLContext *ctx = nullptr; #ifdef OAK_ENABLE_DYNAMIC_RENDER_BACKEND - if (auto *dynamic_renderer = dynamic_cast(renderer_)) { + if (auto *dynamic_renderer = + dynamic_cast(renderer_)) { ctx = dynamic_renderer->OpenGLContext(); } else #endif @@ -164,7 +164,8 @@ public: if (type == QLatin1String(olive::ipc::msgtype::kHandshake)) { olive::ipc::HandshakeMsg hs; if (!olive::ipc::HandshakeMsg::FromJson(message, &hs)) { - return Write(ErrorMessage(QStringLiteral("invalid handshake message"))); + return Write( + ErrorMessage(QStringLiteral("invalid handshake message"))); } return AttachOutputPool(hs); } @@ -172,7 +173,8 @@ public: if (type == QLatin1String(olive::ipc::msgtype::kLoadGraph)) { olive::ipc::LoadGraphMsg load; if (!olive::ipc::LoadGraphMsg::FromJson(message, &load)) { - return Write(ErrorMessage(QStringLiteral("invalid load_graph message"))); + return Write( + ErrorMessage(QStringLiteral("invalid load_graph message"))); } return LoadGraph(load.path); } @@ -180,7 +182,8 @@ public: if (type == QLatin1String(olive::ipc::msgtype::kRenderFrame)) { olive::ipc::RenderFrameMsg render; if (!olive::ipc::RenderFrameMsg::FromJson(message, &render)) { - return Write(ErrorMessage(QStringLiteral("invalid render_frame message"))); + return Write(ErrorMessage( + QStringLiteral("invalid render_frame message"))); } return RenderFrame(render); } @@ -195,7 +198,8 @@ public: return true; } - return Write(ErrorMessage(QStringLiteral("unknown message type: %1").arg(type))); + return Write( + ErrorMessage(QStringLiteral("unknown message type: %1").arg(type))); } bool shutdown_requested() const @@ -214,48 +218,58 @@ private: bool AttachOutputPool(const olive::ipc::HandshakeMsg &hs) { if (hs.protocol_version != kProtocolVersion) { - return Write(ErrorMessage(QStringLiteral("unsupported protocol version %1") - .arg(hs.protocol_version))); + return Write( + ErrorMessage(QStringLiteral("unsupported protocol version %1") + .arg(hs.protocol_version))); } - if (hs.shm_key.isEmpty() || hs.output_slots <= 0 || hs.slot_data_bytes <= 0) { - return Write(ErrorMessage(QStringLiteral("handshake missing output shared-memory geometry"))); + if (hs.shm_key.isEmpty() || hs.output_slots <= 0 || + hs.slot_data_bytes <= 0) { + return Write(ErrorMessage(QStringLiteral( + "handshake missing output shared-memory geometry"))); } const size_t bytes = olive::ipc::FrameSlotPool::BytesNeeded( uint32_t(hs.output_slots), size_t(hs.slot_data_bytes)); - if (!output_region_.Open(hs.shm_key, bytes, olive::ipc::SharedMemoryRegion::kAttach)) { - return Write(ErrorMessage(QStringLiteral("failed to attach shared memory: %1") - .arg(output_region_.error()))); + if (!output_region_.Open(hs.shm_key, bytes, + olive::ipc::SharedMemoryRegion::kAttach)) { + return Write(ErrorMessage( + QStringLiteral("failed to attach shared memory: %1") + .arg(output_region_.error()))); } output_pool_ = olive::ipc::FrameSlotPool::Attach(output_region_.data()); if (!output_pool_->IsValid()) { output_region_.Close(); output_pool_.reset(); - return Write(ErrorMessage(QStringLiteral("shared memory does not contain a frame slot pool"))); + return Write(ErrorMessage(QStringLiteral( + "shared memory does not contain a frame slot pool"))); } input_pool_.reset(); input_region_.Close(); if (hs.input_slots > 0) { if (hs.input_shm_key.isEmpty() || hs.input_slot_data_bytes <= 0) { - return Write(ErrorMessage(QStringLiteral("handshake missing input shared-memory geometry"))); + return Write(ErrorMessage(QStringLiteral( + "handshake missing input shared-memory geometry"))); } const size_t input_bytes = olive::ipc::FrameSlotPool::BytesNeeded( uint32_t(hs.input_slots), size_t(hs.input_slot_data_bytes)); if (!input_region_.Open(hs.input_shm_key, input_bytes, olive::ipc::SharedMemoryRegion::kAttach)) { - return Write(ErrorMessage(QStringLiteral("failed to attach input shared memory: %1") - .arg(input_region_.error()))); + return Write(ErrorMessage( + QStringLiteral("failed to attach input shared memory: %1") + .arg(input_region_.error()))); } - input_pool_ = olive::ipc::FrameSlotPool::Attach(input_region_.data()); + input_pool_ = + olive::ipc::FrameSlotPool::Attach(input_region_.data()); if (!input_pool_->IsValid()) { input_region_.Close(); input_pool_.reset(); - return Write(ErrorMessage(QStringLiteral("input shared memory does not contain a frame slot pool"))); + return Write(ErrorMessage(QStringLiteral( + "input shared memory does not contain a frame slot pool"))); } } @@ -267,17 +281,23 @@ private: { QFileInfo fi(path); if (!fi.exists()) { - LogError(QStringLiteral("LoadGraph: graph file does not exist: %1").arg(path)); - return Write(ErrorMessage(QStringLiteral("graph file does not exist: %1").arg(path))); + LogError( + QStringLiteral("LoadGraph: graph file does not exist: %1") + .arg(path)); + return Write(ErrorMessage( + QStringLiteral("graph file does not exist: %1").arg(path))); } if (fi.size() == 0) { - LogError(QStringLiteral("LoadGraph: graph file is empty: %1").arg(path)); - return Write(ErrorMessage(QStringLiteral("graph file is empty: %1").arg(path))); + LogError(QStringLiteral("LoadGraph: graph file is empty: %1") + .arg(path)); + return Write(ErrorMessage( + QStringLiteral("graph file is empty: %1").arg(path))); } - LogError(QStringLiteral("LoadGraph: loading %1 (%2 bytes, readable=%3)") - .arg(path) - .arg(fi.size()) - .arg(fi.isReadable())); + LogError( + QStringLiteral("LoadGraph: loading %1 (%2 bytes, readable=%3)") + .arg(path) + .arg(fi.size()) + .arg(fi.isReadable())); } auto loaded = std::make_unique(); @@ -286,10 +306,12 @@ private: // Initialize() first triggers Q_ASSERT(!root_) in Project::Load. olive::ProjectSerializer::Result result = - olive::ProjectSerializer::Load(loaded.get(), path, olive::ProjectSerializer::kProject); + olive::ProjectSerializer::Load(loaded.get(), path, + olive::ProjectSerializer::kProject); if (result != olive::ProjectSerializer::kSuccess) { - return Write(ErrorMessage(QStringLiteral("failed to load graph %1: %2") - .arg(path, result.GetDetails()))); + return Write( + ErrorMessage(QStringLiteral("failed to load graph %1: %2") + .arg(path, result.GetDetails()))); } project_ = std::move(loaded); @@ -297,12 +319,15 @@ private: color_processor_cache_.clear(); const auto &data = result.GetLoadData(); - for (auto it = data.node_ptrs.cbegin(); it != data.node_ptrs.cend(); ++it) { + for (auto it = data.node_ptrs.cbegin(); it != data.node_ptrs.cend(); + ++it) { node_by_token_.insert(QString::number(it.key()), it.value()); } - for (auto it = data.node_uuids.cbegin(); it != data.node_uuids.cend(); ++it) { + for (auto it = data.node_uuids.cbegin(); it != data.node_uuids.cend(); + ++it) { node_by_token_.insert(it.value().toString(), it.key()); - node_by_token_.insert(it.value().toString(QUuid::WithoutBraces), it.key()); + node_by_token_.insert(it.value().toString(QUuid::WithoutBraces), + it.key()); } QJsonObject ack; @@ -329,29 +354,36 @@ private: bool RenderFrame(const olive::ipc::RenderFrameMsg &message) { if (!project_) { - return Write(ErrorMessage(QStringLiteral("render_frame received before load_graph"), - message.ticket_id)); + return Write(ErrorMessage( + QStringLiteral("render_frame received before load_graph"), + message.ticket_id)); } if (!output_pool_ || !output_pool_->IsValid()) { - return Write(ErrorMessage(QStringLiteral("render_frame received before output shm handshake"), - message.ticket_id)); + return Write(ErrorMessage( + QStringLiteral( + "render_frame received before output shm handshake"), + message.ticket_id)); } olive::Node *node = FindNode(message.node_uuid); if (!node) { - return Write(ErrorMessage(QStringLiteral("render node not found: %1").arg(message.node_uuid), - message.ticket_id)); + return Write( + ErrorMessage(QStringLiteral("render node not found: %1") + .arg(message.node_uuid), + message.ticket_id)); } QVector input_slots; const QVector requested_input_slots = - message.input_slots.isEmpty() && message.input_slot >= 0 - ? QVector{message.input_slot} - : message.input_slots; + message.input_slots.isEmpty() && message.input_slot >= 0 ? + QVector{ message.input_slot } : + message.input_slots; if (!requested_input_slots.isEmpty()) { if (!input_pool_ || !input_pool_->IsValid()) { - return Write(ErrorMessage(QStringLiteral("render_frame referenced input slot without input pool"), - message.ticket_id)); + return Write(ErrorMessage( + QStringLiteral( + "render_frame referenced input slot without input pool"), + message.ticket_id)); } for (int requested_slot : requested_input_slots) { @@ -360,8 +392,9 @@ private: for (int slot : input_slots) { input_pool_->Release(uint32_t(slot)); } - return Write(ErrorMessage(QStringLiteral("input slot index out of range"), - message.ticket_id)); + return Write(ErrorMessage( + QStringLiteral("input slot index out of range"), + message.ticket_id)); } uint32_t consumed_slot = 0; @@ -369,16 +402,18 @@ private: for (int slot : input_slots) { input_pool_->Release(uint32_t(slot)); } - return Write(ErrorMessage(QStringLiteral("input slot was not ready"), - message.ticket_id)); + return Write( + ErrorMessage(QStringLiteral("input slot was not ready"), + message.ticket_id)); } if (int(consumed_slot) != requested_slot) { input_pool_->Release(consumed_slot); for (int slot : input_slots) { input_pool_->Release(uint32_t(slot)); } - return Write(ErrorMessage(QStringLiteral("input slot order mismatch"), - message.ticket_id)); + return Write(ErrorMessage( + QStringLiteral("input slot order mismatch"), + message.ticket_id)); } input_slots.append(int(consumed_slot)); @@ -389,41 +424,41 @@ private: } } - olive::VideoParams vparams(message.width > 0 ? message.width : kDefaultWidth, - message.height > 0 ? message.height : kDefaultHeight, - olive::rational(1, kDefaultFrameRate), - message.format >= 0 - ? olive::PixelFormat::Format(message.format) - : olive::PixelFormat::F32, - message.channel_count > 0 - ? message.channel_count - : olive::VideoParams::kRGBAChannelCount); + olive::VideoParams vparams( + message.width > 0 ? message.width : kDefaultWidth, + message.height > 0 ? message.height : kDefaultHeight, + olive::rational(1, kDefaultFrameRate), + message.format >= 0 ? olive::PixelFormat::Format(message.format) : + olive::PixelFormat::F32, + message.channel_count > 0 ? message.channel_count : + olive::VideoParams::kRGBAChannelCount); olive::RenderTicketPtr ticket = std::make_shared(); ticket->setProperty("node", olive::QtUtils::PtrToValue(node)); - ticket->setProperty("time", QVariant::fromValue( - olive::rational(int(message.time_num), int(message.time_den)))); + ticket->setProperty("time", + QVariant::fromValue(olive::rational( + int(message.time_num), int(message.time_den)))); ticket->setProperty("size", QSize(message.width, message.height)); ticket->setProperty("matrix", QMatrix4x4()); ticket->setProperty("format", - message.format >= 0 - ? olive::PixelFormat::Format(message.format) - : olive::PixelFormat::INVALID); + message.format >= 0 ? + olive::PixelFormat::Format(message.format) : + olive::PixelFormat::INVALID); ticket->setProperty("usecache", false); ticket->setProperty("channelcount", message.channel_count); ticket->setProperty("mode", olive::RenderMode::Mode(message.mode)); ticket->setProperty("type", olive::RenderManager::kTypeVideo); - ticket->setProperty("colormanager", olive::QtUtils::PtrToValue(project_->color_manager())); + ticket->setProperty("colormanager", olive::QtUtils::PtrToValue( + project_->color_manager())); { olive::ColorProcessorPtr color_output; if (message.has_color_transform) { - QString cache_key = - QStringLiteral("%1|%2|%3|%4") - .arg(message.color_is_display ? 1 : 0) - .arg(message.color_output, - message.color_view, - message.color_look); + QString cache_key = QStringLiteral("%1|%2|%3|%4") + .arg(message.color_is_display ? 1 : 0) + .arg(message.color_output, + message.color_view, + message.color_look); auto it = color_processor_cache_.find(cache_key); if (it != color_processor_cache_.end()) { color_output = it.value(); @@ -431,8 +466,8 @@ private: olive::ColorTransform transform; if (message.color_is_display) { transform = olive::ColorTransform(message.color_output, - message.color_view, - message.color_look); + message.color_view, + message.color_look); } else { transform = olive::ColorTransform(message.color_output); } @@ -446,19 +481,23 @@ private: } } ticket->setProperty("coloroutput", - QVariant::fromValue(color_output)); + QVariant::fromValue(color_output)); } ticket->setProperty("vparam", QVariant::fromValue(vparams)); - ticket->setProperty("aparam", QVariant::fromValue(olive::AudioParams())); + ticket->setProperty("aparam", + QVariant::fromValue(olive::AudioParams())); ticket->setProperty("return", olive::RenderManager::kFrame); ticket->setProperty("cache", QString()); - ticket->setProperty("cachetimebase", QVariant::fromValue(olive::rational(1))); + ticket->setProperty("cachetimebase", + QVariant::fromValue(olive::rational(1))); ticket->setProperty("cacheid", QVariant::fromValue(QUuid())); - ticket->setProperty("multicam", olive::QtUtils::PtrToValue(static_cast(nullptr))); - ticket->setProperty("ipc_input_pool", - olive::QtUtils::PtrToValue( - input_pool_ ? static_cast(&*input_pool_) - : static_cast(nullptr))); + ticket->setProperty("multicam", olive::QtUtils::PtrToValue( + static_cast(nullptr))); + ticket->setProperty( + "ipc_input_pool", + olive::QtUtils::PtrToValue(input_pool_ ? + static_cast(&*input_pool_) : + static_cast(nullptr))); QVariantList input_slot_values; for (int slot : input_slots) { input_slot_values.append(slot); @@ -469,34 +508,42 @@ private: input_slots.isEmpty() ? -1 : input_slots.front()); ticket->Start(); - olive::RenderProcessor::Process(ticket, renderer_, nullptr, &shader_cache_); + olive::RenderProcessor::Process(ticket, renderer_, nullptr, + &shader_cache_); for (int slot : input_slots) { input_pool_->Release(uint32_t(slot)); } if (!ticket->HasResult()) { - return Write(ErrorMessage(QStringLiteral("render produced no frame"), message.ticket_id)); + return Write(ErrorMessage( + QStringLiteral("render produced no frame"), message.ticket_id)); } olive::FramePtr frame = ticket->Get().value(); if (!frame || !frame->is_allocated()) { - return Write(ErrorMessage(QStringLiteral("render result was empty"), message.ticket_id)); + return Write(ErrorMessage(QStringLiteral("render result was empty"), + message.ticket_id)); } uint32_t slot = 0; if (!output_pool_->Acquire(&slot)) { - return Write(ErrorMessage(QStringLiteral("no free output frame slot"), message.ticket_id)); + return Write( + ErrorMessage(QStringLiteral("no free output frame slot"), + message.ticket_id)); } - const int data_size = frame->linesize_bytes()*frame->height(); + const int data_size = frame->linesize_bytes() * frame->height(); if (data_size > int(output_pool_->slot_data_bytes())) { output_pool_->Release(slot); - LogError(QString("Output frame size")+QString::number(data_size)); - LogError(QString("Slot size")+QString::number(output_pool_->slot_data_bytes())); - return Write(ErrorMessage(QStringLiteral("rendered frame does not fit output slot "), - message.ticket_id)); + LogError(QString("Output frame size") + QString::number(data_size)); + LogError(QString("Slot size") + + QString::number(output_pool_->slot_data_bytes())); + return Write(ErrorMessage( + QStringLiteral("rendered frame does not fit output slot "), + message.ticket_id)); } - std::memcpy(output_pool_->SlotData(slot), frame->const_data(), size_t(data_size)); + std::memcpy(output_pool_->SlotData(slot), frame->const_data(), + size_t(data_size)); olive::ipc::FrameSlotMeta *meta = output_pool_->Meta(slot); meta->id = message.ticket_id; meta->time_num = frame->timestamp().numerator(); @@ -510,8 +557,9 @@ private: if (!output_pool_->Publish(slot)) { output_pool_->Release(slot); - return Write(ErrorMessage(QStringLiteral("failed to publish output frame slot"), - message.ticket_id)); + return Write(ErrorMessage( + QStringLiteral("failed to publish output frame slot"), + message.ticket_id)); } olive::ipc::FrameReadyMsg ready; ready.ticket_id = message.ticket_id; @@ -532,7 +580,7 @@ private: QHash color_processor_cache_; }; -} // namespace +} // namespace int main(int argc, char *argv[]) { @@ -600,7 +648,8 @@ int main(int argc, char *argv[]) QOpenGLContext *ctx = nullptr; if (backend == QStringLiteral("opengl")) { #ifdef OAK_ENABLE_DYNAMIC_RENDER_BACKEND - if (auto *loaded_renderer = dynamic_cast(renderer)) { + if (auto *loaded_renderer = + dynamic_cast(renderer)) { ctx = loaded_renderer->OpenGLContext(); } else #endif @@ -639,7 +688,8 @@ int main(int argc, char *argv[]) if (!olive::ipc::ReadMessage(&buffer, &message, &ok)) { if (!ok) { olive::ipc::WriteMessage( - &out, ErrorMessage(QStringLiteral("malformed control message"))); + &out, ErrorMessage(QStringLiteral( + "malformed control message"))); out.flush(); continue; } diff --git a/app/render/worker/workermain_mac.mm b/app/render/worker/workermain_mac.mm index b64f1044f..31b24547c 100644 --- a/app/render/worker/workermain_mac.mm +++ b/app/render/worker/workermain_mac.mm @@ -22,5 +22,5 @@ void HideWorkerDockIcon() { - [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; + [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; } diff --git a/app/shaders/CMakeLists.txt b/app/shaders/CMakeLists.txt index e32b69af3..258def55d 100644 --- a/app/shaders/CMakeLists.txt +++ b/app/shaders/CMakeLists.txt @@ -16,14 +16,14 @@ file(GLOB_RECURSE SHADER_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.frag *.vert) set(QRC_BODY "") -foreach(SHADER_FILE ${SHADER_RESOURCES}) - string(APPEND QRC_BODY "${SHADER_FILE}\n") - configure_file(${SHADER_FILE} ${SHADER_FILE} COPYONLY) -endforeach() +foreach (SHADER_FILE ${SHADER_RESOURCES}) + string(APPEND QRC_BODY "${SHADER_FILE}\n") + configure_file(${SHADER_FILE} ${SHADER_FILE} COPYONLY) +endforeach () configure_file(shaders.qrc.in shaders.qrc @ONLY) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc - PARENT_SCOPE + ${OLIVE_RESOURCES} + ${CMAKE_CURRENT_BINARY_DIR}/shaders.qrc + PARENT_SCOPE ) diff --git a/app/task/CMakeLists.txt b/app/task/CMakeLists.txt index b8a98e6dd..aa8599fbb 100644 --- a/app/task/CMakeLists.txt +++ b/app/task/CMakeLists.txt @@ -23,9 +23,9 @@ add_subdirectory(proxy) add_subdirectory(render) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/task.h - task/taskmanager.h - task/taskmanager.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/task.h + task/taskmanager.h + task/taskmanager.cpp + PARENT_SCOPE ) diff --git a/app/task/conform/CMakeLists.txt b/app/task/conform/CMakeLists.txt index 6c25e92ce..35d14322d 100644 --- a/app/task/conform/CMakeLists.txt +++ b/app/task/conform/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/conform/conform.h - task/conform/conform.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/conform/conform.h + task/conform/conform.cpp + PARENT_SCOPE ) diff --git a/app/task/customcache/CMakeLists.txt b/app/task/customcache/CMakeLists.txt index c171db697..0c557c04b 100644 --- a/app/task/customcache/CMakeLists.txt +++ b/app/task/customcache/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/customcache/customcachetask.cpp - task/customcache/customcachetask.h - PARENT_SCOPE + ${OLIVE_SOURCES} + task/customcache/customcachetask.cpp + task/customcache/customcachetask.h + PARENT_SCOPE ) diff --git a/app/task/export/CMakeLists.txt b/app/task/export/CMakeLists.txt index 7a7fad1bc..9de1d33bb 100644 --- a/app/task/export/CMakeLists.txt +++ b/app/task/export/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/export/export.h - task/export/export.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/export/export.h + task/export/export.cpp + PARENT_SCOPE ) diff --git a/app/task/precache/CMakeLists.txt b/app/task/precache/CMakeLists.txt index 127475e36..6a63c2648 100644 --- a/app/task/precache/CMakeLists.txt +++ b/app/task/precache/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/precache/precachetask.h - task/precache/precachetask.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/precache/precachetask.h + task/precache/precachetask.cpp + PARENT_SCOPE ) diff --git a/app/task/project/CMakeLists.txt b/app/task/project/CMakeLists.txt index a9761a917..78a92d11b 100644 --- a/app/task/project/CMakeLists.txt +++ b/app/task/project/CMakeLists.txt @@ -14,16 +14,16 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -if(OpenTimelineIO_FOUND) - add_subdirectory(loadotio) - add_subdirectory(saveotio) -endif() +if (OpenTimelineIO_FOUND) + add_subdirectory(loadotio) + add_subdirectory(saveotio) +endif () add_subdirectory(import) add_subdirectory(load) add_subdirectory(save) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/task/project/import/CMakeLists.txt b/app/task/project/import/CMakeLists.txt index adc4161fc..5042d5b39 100644 --- a/app/task/project/import/CMakeLists.txt +++ b/app/task/project/import/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/project/import/import.h - task/project/import/import.cpp - task/project/import/importerrordialog.h - task/project/import/importerrordialog.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/project/import/import.h + task/project/import/import.cpp + task/project/import/importerrordialog.h + task/project/import/importerrordialog.cpp + PARENT_SCOPE ) diff --git a/app/task/project/import/importerrordialog.cpp b/app/task/project/import/importerrordialog.cpp index 1501d4ab8..315dd3950 100644 --- a/app/task/project/import/importerrordialog.cpp +++ b/app/task/project/import/importerrordialog.cpp @@ -37,9 +37,9 @@ ProjectImportErrorDialog::ProjectImportErrorDialog(const QStringList &filenames, setWindowTitle(tr("Import Error")); - layout->addWidget(new QLabel( - tr("The following files failed to import. Oak Video Editor likely does not " - "support their formats."))); + layout->addWidget(new QLabel(tr( + "The following files failed to import. Oak Video Editor likely does not " + "support their formats."))); QListWidget *list_widget = new QListWidget(); foreach (const QString &s, filenames) { diff --git a/app/task/project/load/CMakeLists.txt b/app/task/project/load/CMakeLists.txt index e2b50ceff..23e7b7af7 100644 --- a/app/task/project/load/CMakeLists.txt +++ b/app/task/project/load/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/project/load/load.h - task/project/load/load.cpp - task/project/load/loadbasetask.h - task/project/load/loadbasetask.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/project/load/load.h + task/project/load/load.cpp + task/project/load/loadbasetask.h + task/project/load/loadbasetask.cpp + PARENT_SCOPE ) diff --git a/app/task/project/loadotio/CMakeLists.txt b/app/task/project/loadotio/CMakeLists.txt index 77752a10e..ce97e1e96 100644 --- a/app/task/project/loadotio/CMakeLists.txt +++ b/app/task/project/loadotio/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/project/loadotio/loadotio.h - task/project/loadotio/loadotio.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/project/loadotio/loadotio.h + task/project/loadotio/loadotio.cpp + PARENT_SCOPE ) diff --git a/app/task/project/save/CMakeLists.txt b/app/task/project/save/CMakeLists.txt index 774f9349e..4c623d5bd 100644 --- a/app/task/project/save/CMakeLists.txt +++ b/app/task/project/save/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/project/save/save.h - task/project/save/save.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/project/save/save.h + task/project/save/save.cpp + PARENT_SCOPE ) diff --git a/app/task/project/saveotio/CMakeLists.txt b/app/task/project/saveotio/CMakeLists.txt index d48b94f43..fb4cb1f8d 100644 --- a/app/task/project/saveotio/CMakeLists.txt +++ b/app/task/project/saveotio/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/project/saveotio/saveotio.h - task/project/saveotio/saveotio.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/project/saveotio/saveotio.h + task/project/saveotio/saveotio.cpp + PARENT_SCOPE ) diff --git a/app/task/proxy/CMakeLists.txt b/app/task/proxy/CMakeLists.txt index 4aa1ea49b..3f51c6644 100644 --- a/app/task/proxy/CMakeLists.txt +++ b/app/task/proxy/CMakeLists.txt @@ -2,8 +2,8 @@ # Copyright (C) 2026 Oak Team set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/proxy/proxy.h - task/proxy/proxy.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/proxy/proxy.h + task/proxy/proxy.cpp + PARENT_SCOPE ) diff --git a/app/task/proxy/proxy.cpp b/app/task/proxy/proxy.cpp index 2bd2f0221..524149802 100644 --- a/app/task/proxy/proxy.cpp +++ b/app/task/proxy/proxy.cpp @@ -29,8 +29,7 @@ namespace olive { -ProxyTask::ProxyTask(const QString &source_filename, - int stream_index, +ProxyTask::ProxyTask(const QString &source_filename, int stream_index, const ProxyManager::ProxyParams ¶ms, const QString &output_filename) : source_filename_(source_filename) @@ -44,9 +43,11 @@ ProxyTask::ProxyTask(const QString &source_filename, bool ProxyTask::Run() { - const QString ffmpeg = QStandardPaths::findExecutable(QStringLiteral("ffmpeg")); + const QString ffmpeg = + QStandardPaths::findExecutable(QStringLiteral("ffmpeg")); if (ffmpeg.isEmpty()) { - SetError(tr("Failed to generate proxy: ffmpeg executable was not found")); + SetError( + tr("Failed to generate proxy: ffmpeg executable was not found")); qWarning() << "ProxyTask: ffmpeg executable not found"; return false; } @@ -55,36 +56,34 @@ bool ProxyTask::Run() if (!output_dir.exists() && !output_dir.mkpath(QStringLiteral("."))) { SetError(tr("Failed to create proxy output directory")); qWarning() << "ProxyTask: failed to create output directory" - << output_dir.absolutePath(); + << output_dir.absolutePath(); return false; } - qDebug() << "ProxyTask: starting ffmpeg proxy generation:" - << source_filename_ << "->" << output_filename_; + qDebug() + << "ProxyTask: starting ffmpeg proxy generation:" << source_filename_ + << "->" << output_filename_; QFile::remove(output_filename_); - const QString scale_filter = QStringLiteral( - "scale=w=%1:h=%2:force_original_aspect_ratio=decrease") - .arg(QString::number(params_.width), - QString::number(params_.height)); + const QString scale_filter = + QStringLiteral("scale=w=%1:h=%2:force_original_aspect_ratio=decrease") + .arg(QString::number(params_.width), + QString::number(params_.height)); const QString container_format = params_.extension.isEmpty() ? QStringLiteral("mp4") : params_.extension; QStringList args; - args << QStringLiteral("-y") - << QStringLiteral("-i") << source_filename_ + args << QStringLiteral("-y") << QStringLiteral("-i") << source_filename_ << QStringLiteral("-map") << QStringLiteral("0:%1").arg(stream_index_) - << QStringLiteral("-an") - << QStringLiteral("-vf") << scale_filter + << QStringLiteral("-an") << QStringLiteral("-vf") << scale_filter << QStringLiteral("-c:v") << QStringLiteral("libx264") << QStringLiteral("-preset") << params_.preset << QStringLiteral("-crf") << QString::number(params_.crf) << QStringLiteral("-pix_fmt") << QStringLiteral("yuv420p") << QStringLiteral("-movflags") << QStringLiteral("+faststart") - << QStringLiteral("-f") << container_format - << output_filename_; + << QStringLiteral("-f") << container_format << output_filename_; QProcess process; process.setProgram(ffmpeg); @@ -94,7 +93,8 @@ bool ProxyTask::Run() if (!process.waitForStarted()) { SetError(tr("Failed to start ffmpeg for proxy generation")); - qWarning() << "ProxyTask: failed to start ffmpeg" << process.errorString(); + qWarning() + << "ProxyTask: failed to start ffmpeg" << process.errorString(); return false; } @@ -108,19 +108,20 @@ bool ProxyTask::Run() } } - if (process.exitStatus() != QProcess::NormalExit || process.exitCode() != 0) { + if (process.exitStatus() != QProcess::NormalExit || + process.exitCode() != 0) { const QString output = QString::fromUtf8(process.readAll()).trimmed(); QFile::remove(output_filename_); SetError(tr("ffmpeg failed to generate proxy: %1").arg(output)); - qWarning() << "ProxyTask: ffmpeg failed with exit code" << process.exitCode() - << "output:" << output; + qWarning() << "ProxyTask: ffmpeg failed with exit code" + << process.exitCode() << "output:" << output; return false; } if (!QFileInfo::exists(output_filename_)) { SetError(tr("ffmpeg finished but proxy file was not created")); qWarning() << "ProxyTask: ffmpeg finished but output file missing" - << output_filename_; + << output_filename_; return false; } diff --git a/app/task/proxy/proxy.h b/app/task/proxy/proxy.h index c763b4a80..e96bb2cb9 100644 --- a/app/task/proxy/proxy.h +++ b/app/task/proxy/proxy.h @@ -28,8 +28,7 @@ namespace olive class ProxyTask : public Task { Q_OBJECT public: - ProxyTask(const QString &source_filename, - int stream_index, + ProxyTask(const QString &source_filename, int stream_index, const ProxyManager::ProxyParams ¶ms, const QString &output_filename); diff --git a/app/task/render/CMakeLists.txt b/app/task/render/CMakeLists.txt index e43581c6e..a430312c9 100644 --- a/app/task/render/CMakeLists.txt +++ b/app/task/render/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - task/render/render.h - task/render/render.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + task/render/render.h + task/render/render.cpp + PARENT_SCOPE ) diff --git a/app/task/render/render.cpp b/app/task/render/render.cpp index 593d1adc9..0642007d8 100644 --- a/app/task/render/render.cpp +++ b/app/task/render/render.cpp @@ -226,7 +226,7 @@ bool RenderTask::Render(ColorManager *manager, const TimeRangeList &video_range, StartTicket(&watcher_thread, manager, next_frame, mode, cache, force_size, force_matrix, force_format, force_channel_count, force_color_output, - force_color_transform); + force_color_transform); } } diff --git a/app/task/render/render.h b/app/task/render/render.h index f943a243b..344937f2a 100644 --- a/app/task/render/render.h +++ b/app/task/render/render.h @@ -125,7 +125,8 @@ private: const rational &time, RenderMode::Mode mode, FrameHashCache *cache, const QSize &force_size, const QMatrix4x4 &force_matrix, PixelFormat force_format, - int force_channel_count, ColorProcessorPtr force_color_output, + int force_channel_count, + ColorProcessorPtr force_color_output, const ColorTransform &force_color_transform); ViewerOutput *viewer_; diff --git a/app/timeline/CMakeLists.txt b/app/timeline/CMakeLists.txt index af2d1070f..1a3e0aacc 100644 --- a/app/timeline/CMakeLists.txt +++ b/app/timeline/CMakeLists.txt @@ -15,24 +15,24 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - timeline/timelinecommon.h - timeline/timelinecoordinate.h - timeline/timelinecoordinate.cpp - timeline/timelinemarker.h - timeline/timelinemarker.cpp - timeline/timelineundocommon.h - timeline/timelineundogeneral.cpp - timeline/timelineundogeneral.h - timeline/timelineundopointer.cpp - timeline/timelineundopointer.h - timeline/timelineundoripple.cpp - timeline/timelineundoripple.h - timeline/timelineundosplit.cpp - timeline/timelineundosplit.h - timeline/timelineundotrack.cpp - timeline/timelineundotrack.h - timeline/timelineworkarea.h - timeline/timelineworkarea.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + timeline/timelinecommon.h + timeline/timelinecoordinate.h + timeline/timelinecoordinate.cpp + timeline/timelinemarker.h + timeline/timelinemarker.cpp + timeline/timelineundocommon.h + timeline/timelineundogeneral.cpp + timeline/timelineundogeneral.h + timeline/timelineundopointer.cpp + timeline/timelineundopointer.h + timeline/timelineundoripple.cpp + timeline/timelineundoripple.h + timeline/timelineundosplit.cpp + timeline/timelineundosplit.h + timeline/timelineundotrack.cpp + timeline/timelineundotrack.h + timeline/timelineworkarea.h + timeline/timelineworkarea.cpp + PARENT_SCOPE ) diff --git a/app/tool/CMakeLists.txt b/app/tool/CMakeLists.txt index 7ae9ff94b..67629be12 100644 --- a/app/tool/CMakeLists.txt +++ b/app/tool/CMakeLists.txt @@ -15,7 +15,7 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - tool/tool.h - PARENT_SCOPE + ${OLIVE_SOURCES} + tool/tool.h + PARENT_SCOPE ) diff --git a/app/ts/CMakeLists.txt b/app/ts/CMakeLists.txt index 8c153a4f9..3c682c5f2 100644 --- a/app/ts/CMakeLists.txt +++ b/app/ts/CMakeLists.txt @@ -15,22 +15,22 @@ # along with this program. If not, see . set(OLIVE_TS_FILES - ts/ar_AR.ts - ts/bs_BA.ts - ts/cs_CZ.ts - ts/de_DE.ts - ts/en_US.ts - ts/es_ES.ts - ts/fr_FR.ts - ts/id_ID.ts - ts/it_IT.ts - ts/pt_BR.ts - ts/ru_RU.ts - ts/sr_RS.ts - ts/tr_TR.ts - ts/uk_UK.ts - ts/zh_CN.ts - ts/zh_TW.ts - ts/ja_JP.ts - PARENT_SCOPE + ts/ar_AR.ts + ts/bs_BA.ts + ts/cs_CZ.ts + ts/de_DE.ts + ts/en_US.ts + ts/es_ES.ts + ts/fr_FR.ts + ts/id_ID.ts + ts/it_IT.ts + ts/pt_BR.ts + ts/ru_RU.ts + ts/sr_RS.ts + ts/tr_TR.ts + ts/uk_UK.ts + ts/zh_CN.ts + ts/zh_TW.ts + ts/ja_JP.ts + PARENT_SCOPE ) diff --git a/app/ts/ar_AR.ts b/app/ts/ar_AR.ts index d33b4836a..68cc3b2dc 100644 --- a/app/ts/ar_AR.ts +++ b/app/ts/ar_AR.ts @@ -1,3839 +1,7149 @@ - - - + + + - AudioParams - - - %1 Hz - - - - - Mono - اُحادي - - - - Stereo - مُجسم - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Mono < /source> + < translation +type = "unfinished" > اُحادي < /translation> +< /message> +< message > + + Stereo < /source> + < translation +type = "unfinished" > مُجسم < /translation> +< /message> +< message > + + 2.1 < /source> + < translation +type = "unfinished" > 2.1 < /translation> +< /message> +< message > + + 5.1 < /source> + < translation +type = "unfinished" > 5.1 < /translation> +< /message> +< message > + + 7.1 < /source> + < translation +type = "unfinished" > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - اللون - - - - Matrix - - - - - Text - النص - - - - Font - الخط - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - بيزير - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - تغيير %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - تحرير المعلمات - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - ألواح - - - - Shape - - - - - Solid - - - - - Title - عنوان - - - - Tone - نغّم - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 1/%1 - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > اللون < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > النص < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > الخط < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > بيزير < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > تغيير % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > تحرير +المعلمات < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > ألواح < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > عنوان < /translation> +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > نغّم < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > قالب +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "obsolete" > زيتون +هو +محرر +فيديو +غير +خطي.هذا +البرنامج +حر +ومحمي +بموجب +رخصة +جنو +العمومية. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "obsolete" > فريق +زيتون +ملزم +بإخبار +مستخدميه +بأن +الشفرة +المصدرية +لزيتون +متوفرة +للتنزيل +عبر +موقعه +الإلكتروني. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > ابحث +عن +إجراء +... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio < /source> +< translation +type = "obsolete" > الصوت < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > بيزير < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > المركز < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > حلقة < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > اللون < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - قالب: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - زيتون هو محرر فيديو غير خطي. هذا البرنامج حر ومحمي بموجب رخصة جنو العمومية. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - فريق زيتون ملزم بإخبار مستخدميه بأن الشفرة المصدرية لزيتون متوفرة للتنزيل عبر موقعه الإلكتروني. - - - - olive::ActionSearch - - - Search for action... - ابحث عن إجراء... - - - - olive::AudioInput - - Audio - الصوت - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - بيزير - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - المركز - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - حلقة - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - اللون - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - مجلد جديد - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - - - Error - خطأ - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > مجلد +جديد < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > خطأ < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > أعلى < /translation> +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > القاع < /translation> +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > خطي < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > بيزير < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > أمسك < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > اللون < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > أظهر < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > اللون < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > العتمة < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > مرماز +: + +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > معدل +الإعتيان: +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > صيغة +: + +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > أسم +الملف: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > قالب +: + +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > المدى +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > كل +المقطع < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > الدخل +إلى +الخرج < /translation> +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > صيغة +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > فيديو < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > الصوت < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > تصدير < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > إلغاء < /translation> +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< numerusform > +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > إفتراضي < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > فيديو < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > الصوت < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > اﻷسم +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > مرماز +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > عام < /translation> +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > العرض +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > الطول +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > وائم < /translation> +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > معدل +نسبة +البيكسل: +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > المشابكة +: + +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > مرماز +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< numerusform > +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > فيديو < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > الصوت < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > & quot; +% +1 & quot; +الخصائص < /translation> +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > اﻷسم +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > المقطوعات +: + +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > تصفّح < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "obsolete" > كل +الملفات < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > حجم +الملف +الهدف(مب) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > لا +شيء(متفاقم) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > خطي < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > أمسك < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > بيزير < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > خطي < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > بيزير < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > أمسك < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > خطي < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > بيزير < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "obsolete" > أمسك < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - أعلى - - - - Right - - - - - Bottom - القاع - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - خطي - - - - Bezier - بيزير - - - - Hold - أمسك - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - اللون - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - أظهر - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - اللون - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - العتمة - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - - - - - Pixel - - - - - Pixel Format: - - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - مرماز: - - - - Sample Rate: - معدل الإعتيان: - - - - Channel Layout: - - - - - Format: - صيغة: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - أسم الملف: - - - - Browse for exported file filename - - - - - Preset: - قالب: - - - - Range: - المدى: - - - - Entire Sequence - كل المقطع - - - - In to Out - الدخل إلى الخرج - - - - Format: - صيغة: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - فيديو - - - - Audio - الصوت - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - تصدير - - - - Cancel - إلغاء - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - - - - - Default - إفتراضي - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - فيديو - - - - Audio - الصوت - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - اﻷسم: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - مرماز: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - عام - - - - Width: - العرض: - - - - Height: - الطول: - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - وائم - - - - Stretch - - - - - Crop - - - - - Frame Rate: - - - - - Pixel Aspect Ratio: - معدل نسبة البيكسل: - - - - Interlacing: - المشابكة: - - - - Quality: - - - - - Codec - - - - - Codec: - مرماز: - - - - Advanced - - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - - - - - %1: Subtitle - - - - - Video - فيديو - - - - Audio - الصوت - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - "%1" الخصائص - - - - Name: - اﻷسم: - - - - Tracks: - المقطوعات: - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - تصفّح - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - كل الملفات - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - حجم الملف الهدف (مب): - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - لا شيء (متفاقم) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - خطي - - - - Hold - أمسك - - - - Bezier - بيزير - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - خطي - - - - Bezier - بيزير - - - - Hold - أمسك - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - خطي - - - Bezier - بيزير - - - Hold - أمسك - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - &أحفظ المشروع - - - - Save Project &As - أحفظ المشروع &ك - - - - (None) - - - - - &File - &ملف - - - - &New - &جديد - - - - &Open Project - &أفتح مشروع - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - &أستيراد - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > & أحفظ +المشروع < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > أحفظ +المشروع & ك < /translation> +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > & ملف < /translation> +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > & جديد < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > & أفتح +مشروع < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > & أستيراد < /translation> +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/bs_BA.ts b/app/ts/bs_BA.ts index 1c1f059b1..84dc1c034 100644 --- a/app/ts/bs_BA.ts +++ b/app/ts/bs_BA.ts @@ -1,3832 +1,7150 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Mono - - - - Stereo - Stereo - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Nepoznato (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Greška pri učitavanju postavki - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Mono < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Stereo < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Nepoznato(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Greška +pri +učitavanju +postavki < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - “Sesija” might not be the most adequate term for “session” - Neuspješno učitavanje postavki aplikacije. Ova sesija će koristiti zadane postavke. +% 1 < /source> +< translatorcomment >“Sesija” might +not +be +the +most +adequate +term +for “ +session” +< translation > Neuspješno +učitavanje +postavki +aplikacije.Ova +sesija +će +koristiti +zadane +postavke. -%1 - - - - Error saving settings - Greška pri spašavanju postavki - - - - Failed to save application settings. The application may lack write permissions for this location. - Neuspješno spašavanje postavki aplikacije. Aplikaciji možda nedostaju dopuštenja za pisanje u ovoj lokaciji. - - - - Footage - - %1 Hz - %1 Hz - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - - - - - Matrix - - - - - Text - - - - - Font - - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Bezier - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Promijeni %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Uredi parametre - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - - - - - Shape - - - - - Solid - - - - - Title - - - - - Tone - - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 1/%1 - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - Nepoznato (0x%1) - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > Greška +pri +spašavanju +postavki < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > Neuspješno +spašavanje +postavki +aplikacije.Aplikaciji +možda +nedostaju +dopuštenja +za +pisanje +u +ovoj +lokaciji. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +Hz < /source> +< translation +type = "obsolete" > % 1 +Hz < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Promijeni % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Uredi +parametre < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > Nepoznato(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + +About % 1 < /source> +< translation > O % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +je +nelinearni +video +uređivač.Ovaj +softver +je +slobodan +i +zaštićen +GNU +GPL - om. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > Olive +tim +je +pod +obavezom +da +obavijesti +korisnike +da +je +Olive - ov +izvorni +kod +dostupan +za +preuzimanje +sa +njegove +web +stranice. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > Potražite +radnju +... + +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - O %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive je nelinearni video uređivač. Ovaj softver je slobodan i zaštićen GNU GPL-om. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive tim je pod obavezom da obavijesti korisnike da je Olive-ov izvorni kod dostupan za preuzimanje sa njegove web stranice. - - - - olive::ActionSearch - - - Search for action... - Potražite radnju... - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bezier - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - - - Error - - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linearno < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Drži < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Napredno < /translation> +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > Format +piksela: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Format +: + +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > Raspon +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > Čitava +sekvenca < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > Od +početka +do kraja < /translation> +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Format +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Prekini < /translation> +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > Širina +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > Visina +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > Okvirna +stopa: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Napredno < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > Željena +veličina +datoteke(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > Nema(progresivno) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linearno < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Drži < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linearno < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Drži < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > Linearno < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > Bezier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "obsolete" > Drži < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - - - - - Right - - - - - Bottom - - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Linearno - - - - Bezier - Bezier - - - - Hold - Drži - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Napredno - - - - Pixel - - - - - Pixel Format: - Format piksela: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Kodek: - - - - Sample Rate: - - - - - Channel Layout: - - - - - Format: - Format: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - - - - - Browse for exported file filename - - - - - Preset: - - - - - Range: - Raspon: - - - - Entire Sequence - Čitava sekvenca - - - - In to Out - Od početka do kraja - - - - Format: - Format: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - Video - - - - Audio - Audio - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - - - - - Cancel - Prekini - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - - Default - - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - Video - - - - Audio - Audio - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Kodek: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - - - - - Width: - Širina: - - - - Height: - Visina: - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - - - - - Stretch - - - - - Crop - - - - - Frame Rate: - Okvirna stopa: - - - - Pixel Aspect Ratio: - - - - - Interlacing: - - - - - Quality: - - - - - Codec - - - - - Codec: - Kodek: - - - - Advanced - Napredno - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - - %1: Subtitle - - - - - Video - Video - - - - Audio - Audio - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - - - - - Tracks: - - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Željena veličina datoteke (MB): - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Nema (progresivno) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Linearno - - - - Hold - Drži - - - - Bezier - Bezier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Linearno - - - - Bezier - Bezier - - - - Hold - Drži - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Linearno - - - Bezier - Bezier - - - Hold - Drži - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - - - - - Save Project &As - - - - - (None) - - - - - &File - - - - - &New - - - - - &Open Project - - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/cs_CZ.ts b/app/ts/cs_CZ.ts index b3730d3d5..b353aa315 100644 --- a/app/ts/cs_CZ.ts +++ b/app/ts/cs_CZ.ts @@ -1,4133 +1,8220 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Mono - - - - Stereo - Stereo - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Neznámé (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Chyba při načítání nastavení - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Mono < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Stereo < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Neznámé(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Chyba +při +načítání +nastavení < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - Nepodařilo se načíst nastavení programu. Toto sezení bude používat výchozí nastavení. +% 1 < /source> +< translation > Nepodařilo +se +načíst +nastavení +programu.Toto +sezení +bude +používat +výchozí +nastavení. -%1 - - - - Error saving settings - Chyba při ukládání nastavení - - - - Failed to save application settings. The application may lack write permissions for this location. - Nepodařilo se uložit nastavení programu. Program může postrádat oprávnění k zápisu do tohoto umístění. - - - - Footage - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - Filename: %1 - Název souboru: %1 - - - This footage is not valid for use - Tento záznam není platný pro použití - - - - ImportTool - - - Don't ask me again - Neptat se znovu - - - - No Active Sequence - Žádný činný úryvek (sled záběrů) - - - - No sequence is currently open. Would you like to create one? - V současnosti není otevřen žádný úryvek (sled záběrů). Chcete jeden vytvořit? - - - - Automatically Detect Parameters From Footage - Automaticky zjistit parametry ze záznamu - - - - Set Parameters Manually - Nastavit parametry ručně - - - - MoveItemCommand - - Move Item - Přesunout položku - - - - NodeCopyPasteWidget - - Error pasting nodes - Chyba při vkládání uzlů - - - Failed to paste nodes: %1 - Nepodařilo se vložit uzly: %1 - - - - NodeFactory - - - None - Žádný - - - - NodeValue - - - None - Žádný - - - - Integer - Celé číslo - - - - Float - Pohyblivá desetinná čárka - - - - Rational - Racionální - - - - Boolean - Booleánská - - - - Color - Barva - - - - Matrix - Matice - - - - Text - Text - - - - Font - Písmo - - - - File - Soubor - - - - Texture - Povrch - - - - Samples - Vzorky - - - - Vector 2D - Vektor 2D - - - - Vector 3D - Vektor 3D - - - - Vector 4D - Vektor 4D - - - - Bezier - Bézier - - - - Video Parameters - Parametry obrazu - - - - Audio Parameters - Parametry zvuku - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - Neznámý - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - Výstup - - - - %1... - %1... - - - - OlivePluginInstance - - - Change %1 - Změnit %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Upravit parametry - - - - PresetManager - - - Save Preset - Uložit přednastavení - - - - Set preset name: - Nastavit název přednastavení: - - - - Invalid preset name - Neplatný název přednastavení - - - - You must enter a preset name - Musíte zadat název přednastavení - - - - Preset exists - Přednastavení existuje - - - - A preset with this name already exists. Would you like to replace it? - Přednastavení s tímto názvem již existuje. Chcete je nahradit? - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - Zadejte vlastní poměr (např. "4:3", "16/9", atd.): - - - - Invalid custom ratio - Neplatný vlastní poměr - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - Nepodařilo se zpracovat "%1" do poměru stran. Naformátujte, prosím, racionální zlomek pomocí oddělovače ':' nebo '/'. - - - - RenameItemCommand - - Rename Item - Přejmenovat položku - - - - Sequence - - %1 FPS - %1 FPS - - - - Serializer - - - %1 on line %2 - - - - - Stream - - %1: Audio - %2 Channels, %3Hz - %1: Zvuk - %2 kanály, %3 Hz - - - %1: Unknown - %1: Neznámý - - - %1: Image - %2x%3 - %1: Obrázek - %2x%3 - - - %1: Video - %2x%3 - %1: Obraz - %2x%3 - - - - TimelineViewBlockItem - - %1 +% 1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > Chyba +při +ukládání +nastavení < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > Nepodařilo +se +uložit +nastavení +programu.Program +může +postrádat +oprávnění +k +zápisu +do tohoto umístění. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "vanished" > % 1 +Hz < /translation> +< /message> +< message > +Filename +: % +1 < /source> +< translation +type = "vanished" > Název +souboru: % +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "vanished" > Tento +záznam +není +platný +pro +použití < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > Neptat +se +znovu < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation > Žádný +činný +úryvek(sled +záběrů +) + +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation > V současnosti +není +otevřen +žádný +úryvek(sled +záběrů +). +Chcete +jeden +vytvořit ? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > Automaticky +zjistit +parametry +ze +záznamu < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > Nastavit +parametry +ručně < /translation> +< /message> +< /context> +< context > +MoveItemCommand < /name> +< message > +Move +Item < /source> +< translation +type = "vanished" > Přesunout +položku < /translation> +< /message> +< /context> +< context > +NodeCopyPasteWidget < /name> +< message > +Error +pasting +nodes < /source> +< translation +type = "vanished" > Chyba +při +vkládání +uzlů < /translation> +< /message> +< message > +Failed +to +paste +nodes: % +1 < /source> +< translation +type = "vanished" > Nepodařilo +se +vložit +uzly: % +1 < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > Žádný < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + +None < /source> +< translation > Žádný < /translation> +< /message> +< message > + + Integer < /source> + < translation > Celé +číslo < /translation> +< /message> +< message > + + Float < /source> + < translation > Pohyblivá +desetinná +čárka < /translation> +< /message> +< message > + +Rational < /source> +< translation > Racionální < /translation> +< /message> +< message > + +Boolean < /source> +< translation > Booleánská < /translation> +< /message> +< message > + +Color < /source> +< translation > Barva < /translation> +< /message> +< message > + +Matrix < /source> +< translation > Matice < /translation> +< /message> +< message > + +Text < /source> +< translation > Text < /translation> +< /message> +< message > + +Font < /source> +< translation > Písmo < /translation> +< /message> +< message > + +File < /source> +< translation > Soubor < /translation> +< /message> +< message > + +Texture < /source> +< translation > Povrch < /translation> +< /message> +< message > + +Samples < /source> +< translation > Vzorky < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation > Vektor +2 +D < /translation> +< /message> +< message > + + Vector +3 +D < /source> +< translation > Vektor +3 +D < /translation> +< /message> +< message > + + Vector +4 +D < /source> +< translation > Vektor +4 +D < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation > Parametry +obrazu < /translation> +< /message> +< message > + + Audio +Parameters < /source> +< translation > Parametry +zvuku < /translation> +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Neznámý < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > Výstup < /translation> +< /message> +< message > + + % 1... < /source> +< translation > % 1... < /translation> +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Změnit % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Upravit +parametry < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation > Uložit +přednastavení < /translation> +< /message> +< message > + + Set +preset +name: +< translation > Nastavit +název +přednastavení: +< /message> +< message > + + Invalid +preset +name < /source> +< translation > Neplatný +název +přednastavení < /translation> +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation > Musíte +zadat +název +přednastavení < /translation> +< /message> +< message > + + Preset +exists < /source> +< translation > Přednastavení +existuje < /translation> +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation > Přednastavení s +tímto +názvem +již +existuje.Chcete +je +nahradit ? +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation > Zadejte +vlastní +poměr(např. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +atd. +): + +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation > Neplatný +vlastní +poměr < /translation> +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. +Nepodařilo +se +zpracovat & quot; +% +1 & quot; +do poměru stran.Naformátujte, prosím, racionální +zlomek +pomocí +oddělovače & apos; +:& +apos; +nebo & apos; +/'. + +< /context> +< context > +RenameItemCommand < /name> +< message > +Rename +Item < /source> +< translation +type = "vanished" > Přejmenovat +položku < /translation> +< /message> +< /context> +< context > +Sequence < /name> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + Stream < /name> + < message > + % 1 +: +Audio - % 2 +Channels, +% +3 +Hz < /source> +< translation +type = "vanished" > % 1 +: +Zvuk - % 2 +kanály, +% +3 +Hz < /translation> +< /message> +< message > + % 1 +: +Unknown < /source> +< translation +type = "vanished" > % 1 +: +Neznámý < /translation> +< /message> +< message > + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "vanished" > % 1 +: +Obrázek - % 2 +x % 3 < /translation> +< /message> +< message > + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "vanished" > % 1 +: +Obraz - % 2 +x % 3 < /translation> +< /message> +< /context> +< context > +TimelineViewBlockItem < /name> +< message > + % 1 -In: %2 -Out: %3 -Length: %4 - %1 +In: % +2 +Out: % +3 +Length: % +4 < /source> +< translation +type = "vanished" > % 1 -Začátek: %2 -Konec: %3 -Délka: %4 - - - - Tool - - - Empty - Prázdné - - - - Bars - Pruhy - - - - Shape - - - - - Solid - Plný - - - - Title - Název - - - - Tone - Odstín - - - - Subtitle - Titulek - - - - Unknown - Neznámý - - - - UndoStack - - - Undo %1 - Zpět %1 - - - - Redo %1 - Znovu %1 - - - - VideoParams - - - Full - Plný - - - - 1/%1 - 1/%1 - - - - 8-bit - 8-bitů - - - - 10-bit Packed - - - - - 16-bit Integer - 16-bitů celé číslo - - - - Half-Float (16-bit) - Poloviční plovoucí (16-bitů) - - - - Full-Float (32-bit) - Celý plovoucí (32-bitů) - - - - Unknown (0x%1) - Neznámý (0x%1) - - - - %1 FPS - %1 FPS - - - - Square Pixels (%1) - Čtvercové pixely (%1) - - - - NTSC Standard (%1) - Standard NTSC (%1) - - - - NTSC Widescreen (%1) - Širokoúhlé NTSC (%1) - - - - PAL Standard (%1) - Standard PAL (%1) - - - - PAL Widescreen (%1) - Širokoúhlé PAL (%1) - - - - HD Anamorphic 1080 (%1) - HD deformované 1080 (%1) - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - Ukáže tento text s nápovědou - - - - Show application version - Ukáže verzi programu - - - - Start in full-screen mode - Začít v režimu na celou obrazovku - - - - Export only (No GUI) - Pouze exportovat (bez rozhraní) - - - - Override language with file - Přepsat jazyk souborem - - - - qm-file - Soubor .qm - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - Projekt k otevření při spuštění - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +Začátek: % +2 +Konec: % +3 +Délka: % +4 < /translation> +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > Prázdné < /translation> +< /message> +< message > + +Bars < /source> +< translation > Pruhy < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Solid < /source> +< translation > Plný < /translation> +< /message> +< message > + +Title < /source> +< translation > Název < /translation> +< /message> +< message > + +Tone < /source> +< translation > Odstín < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > Titulek < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Neznámý < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + +Undo % 1 < /source> +< translation > Zpět % 1 < /translation> +< /message> +< message > + +Redo % 1 < /source> +< translation > Znovu % 1 < /translation> +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > Plný < /translation> +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + +8 - bit < /source> +< translation > 8 - bitů < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation > 16 - bitů +celé +číslo < /translation> +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation > Poloviční +plovoucí(16 - bitů) < /translation> +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation > Celý +plovoucí(32 - bitů) < /translation> +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > Neznámý(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > % 1 +FPS < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation > Čtvercové +pixely( % 1 +) + +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > Standard +NTSC( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > Širokoúhlé +NTSC( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > Standard +PAL( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > Širokoúhlé +PAL( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation > HD +deformované +1080( % 1 +) + +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > Ukáže +tento +text +s +nápovědou < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > Ukáže +verzi +programu < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > Začít +v +režimu +na +celou +obrazovku < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > Pouze +exportovat(bez +rozhraní +) + +< /message> +< message > + + Override +language +with file < /source> +< translation > Přepsat jazyk +souborem < /translation> +< /message> +< message > + +qm - file < /source> +< translation > Soubor.qm < /translation> +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > Projekt +k +otevření +při +spuštění < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Přednastavení +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > Metoda +komprese: +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > Činitel +stálého +datového +toku < /translation> +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation > O +programu % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +je +nelineární +editor +obrazového +záznamu.Tento +program +je +zdarma +a +chráněn +GNU +GPL. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > Vývojáři +Olive +dává +uživatelům +na +vědomí, že +zdrojové +kódy +Olive +jsou +dostupné +pro +stažení +na +internetové +stránce +projektu. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation > Hledat +činnost +... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio +Input < /source> +< translation +type = "vanished" > Vstup +zvuku < /translation> +< /message> +< message > +Audio < /source> +< translation +type = "vanished" > Zvuk < /translation> + < /message> + < message > + Import +an +audio +footage +stream. < /source> +< translation +type = "vanished" > Importovat +zvukový +záznam. < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > Sledování +zvuku < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > Začátek +: + +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > Konec +: + +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation > Délka < /translation> + < /message> + < message > + Media +In < /source> +< translation +type = "vanished" > Začátek +záznamu < /translation> +< /message> +< message > + + Enabled < /source> + < translation > Povoleno < /translation> + < /message> + < message > + Speed < /source> + < translation +type = "vanished" > Rychlost < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > Rozmazání < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > Rozmaže +obrázek. < /translation> +< /message> +< message > + +Input < /source> +< translation > Vstup < /translation> +< /message> +< message > + +Method < /source> +< translation > Metoda < /translation> +< /message> +< message > + +Box < /source> +< translation > Rámeček < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > Gausovské < /translation> +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Radius < /source> +< translation > Poloměr < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > Vodorovné < /translation> +< /message> +< message > + +Vertical < /source> +< translation > Svislé < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation > Opakovat +okrajové +pixely < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Směr < /translation> +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Na +střed < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Vstup < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > Kvalita +: + +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Clip < /source> +< translation > Záběr < /translation> +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation > Časově +založený +uzel, který +představuje +zdroj +záznamu. < /translation> +< /message> +< message > + + Buffer < /source> + < translation > Vyrovnávací +paměť < /translation> +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > Začátek +záznamu < /translation> +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > Rychlost < /translation> +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Smyčka < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + +Red < /source> +< translation > Červená < /translation> +< /message> +< message > + + Maroon < /source> + < translation > Kaštanová +hněď < /translation> +< /message> +< message > + +Orange < /source> +< translation > Oranžová < /translation> +< /message> +< message > + +Brown < /source> +< translation > Hnědá < /translation> +< /message> +< message > + + Yellow < /source> + < translation > Žlutá < /translation> + < /message> + < message > + Olive < /source> + < translation +type = "vanished" > Olivová +zeleň < /translation> +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation > Světle +zelená - limetková < /translation> +< /message> +< message > + +Green < /source> +< translation > Zelená < /translation> +< /message> +< message > + +Cyan < /source> +< translation > Modrozelená < /translation> +< /message> +< message > + + Teal < /source> + < translation > Tmavě +modrozelená < /translation> +< /message> +< message > + +Blue < /source> +< translation > Modrá < /translation> +< /message> +< message > + +Navy < /source> +< translation > Tmavomodrá < /translation> +< /message> +< message > + +Pink < /source> +< translation > Růžová < /translation> +< /message> +< message > + +Purple < /source> +< translation > Purpurová < /translation> +< /message> +< message > + +Silver < /source> +< translation > Stříbrná < /translation> +< /message> +< message > + +Gray < /source> +< translation > Šedá < /translation> +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > Vybrat +barvu < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Vstup < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Zelená < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Modrá < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation > Barva < /translation> + < /message> + < /context> + < context > + olive::ColorManager < /name> + < message > + Configuration < /source> + < translation +type = "vanished" > Nastavení < /translation> + < /message> + < message > + Default +Input < /source> +< translation +type = "vanished" > Výchozí +vstup < /translation> +< /message> +< message > +Reference +Space < /source> +< translation +type = "vanished" > Referenční +prostor < /translation> +< /message> +< message > +Scene +Linear < /source> +< translation +type = "vanished" > Lineární +scéna < /translation> +< /message> +< message > +Compositing +Log < /source> +< translation +type = "vanished" > Záznam +o +skladbě < /translation> +< /message> +< message > +(built - in) < /source> +< translation +type = "vanished" > (vestavěno) < /translation> + < /message> + < message > + Color +Manager < /source> +< translation +type = "vanished" > Správce +barev < /translation> +< /message> +< message > +Color +management +configuration +for project. < /source> + < translation type = "vanished" > Nastavení +správy +barev +pro +projekt. < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation > Správa +barev < /translation> +< /message> +< message > + + Input +: + +< translation > Vstup +: + +< /message> +< message > + + Color +Space: +< translation > Barevný +prostor: +< /message> +< message > + + Display +: + +< translation > Zobrazení +: + +< /message> +< message > + + View +: + +< translation > Pohled +: + +< /message> +< message > + + Look +: + +< translation > Vzhled +: + +< /message> +< message > + +(None) < /source> +< translation > (žádný) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Red < /source> +< translation > Červená < /translation> +< /message> +< message > + +Green < /source> +< translation > Zelená < /translation> +< /message> +< message > + +Blue < /source> +< translation > Modrá < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > Náhled < /translation> +< /message> +< message > + +Input < /source> +< translation > Vstup < /translation> +< /message> +< message > + +Reference < /source> +< translation > Odkaz < /translation> +< /message> +< message > + +Display < /source> +< translation > Zobrazení < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation > Přizpůsobuji +zvuk % 1 +:% +2 < /translation> +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation > Chyba +při +importu < /translation> +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation > Nic +k +importu < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation > Importuje +se +... + +< /message> +< message > + + Import +footage +... + +< translation > Importovat +záznam +... + +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Přednastavení: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - Metoda komprese: - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - Činitel stálého datového toku - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - O programu %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive je nelineární editor obrazového záznamu. Tento program je zdarma a chráněn GNU GPL. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Vývojáři Olive dává uživatelům na vědomí, že zdrojové kódy Olive jsou dostupné pro stažení na internetové stránce projektu. - - - - olive::ActionSearch - - - Search for action... - Hledat činnost... - - - - olive::AudioInput - - Audio Input - Vstup zvuku - - - Audio - Zvuk - - - Import an audio footage stream. - Importovat zvukový záznam. - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - Sledování zvuku - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bézier - - - - In: - Začátek: - - - - Out: - Konec: - - - - olive::Block - - - Length - Délka - - - Media In - Začátek záznamu - - - - Enabled - Povoleno - - - Speed - Rychlost - - - - olive::BlurFilterNode - - - Blur - Rozmazání - - - - Blurs an image. - Rozmaže obrázek. - - - - Input - Vstup - - - - Method - Metoda - - - - Box - Rámeček - - - - Gaussian - Gausovské - - - - Directional - - - - - Radial - - - - - Radius - Poloměr - - - - Horizontal - Vodorovné - - - - Vertical - Svislé - - - - Repeat Edge Pixels - Opakovat okrajové pixely - - - - Direction - Směr - - - - Center - Na střed - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - Vstup - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - Kvalita: - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - Záběr - - - - A time-based node that represents a media source. - Časově založený uzel, který představuje zdroj záznamu. - - - - Buffer - Vyrovnávací paměť - - - - Media In - Začátek záznamu - - - - Speed - Rychlost - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - Smyčka - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - Červená - - - - Maroon - Kaštanová hněď - - - - Orange - Oranžová - - - - Brown - Hnědá - - - - Yellow - Žlutá - - - Olive - Olivová zeleň - - - - Oak - - - - - Lime - Světle zelená - limetková - - - - Green - Zelená - - - - Cyan - Modrozelená - - - - Teal - Tmavě modrozelená - - - - Blue - Modrá - - - - Navy - Tmavomodrá - - - - Pink - Růžová - - - - Purple - Purpurová - - - - Silver - Stříbrná - - - - Gray - Šedá - - - - olive::ColorDialog - - - Select Color - Vybrat barvu - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - Vstup - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - Zelená - - - - Blue - Modrá - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Barva - - - - olive::ColorManager - - Configuration - Nastavení - - - Default Input - Výchozí vstup - - - Reference Space - Referenční prostor - - - Scene Linear - Lineární scéna - - - Compositing Log - Záznam o skladbě - - - (built-in) - (vestavěno) - - - Color Manager - Správce barev - - - Color management configuration for project. - Nastavení správy barev pro projekt. - - - - olive::ColorSpaceChooser - - - Color Management - Správa barev - - - - Input: - Vstup: - - - - Color Space: - Barevný prostor: - - - - Display: - Zobrazení: - - - - View: - Pohled: - - - - Look: - Vzhled: - - - - (None) - (žádný) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - Červená - - - - Green - Zelená - - - - Blue - Modrá - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - Náhled - - - - Input - Vstup - - - - Reference - Odkaz - - - - Display - Zobrazení - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - Přizpůsobuji zvuk %1:%2 - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - Chyba při importu - - - - Nothing to import - Nic k importu - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - Importuje se... - - - - Import footage... - Importovat záznam... - - - - Failed to import footage - Nepodařilo se importovat záznam - - - - Failed to find active Project panel - Nepodařilo se najít panel s činným projektem - - - - No Active Project - Žádný činný projekt - - - - No project is currently open to set the properties for - V současnosti není otevřen projekt, pro nějž by se daly nastavit vlastnosti - - - - Failed to create new folder - Nepodařilo se vytvořit novou složku - - - - - Failed to find active project - Nepodařilo se najít činný projekt - - - - New Folder - Nová složka - - - - Created New Folder - - - - - Failed to create new sequence - Nepodařilo se vytvořit nový úryvek - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - Zjištěna možná obrázková řada - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - Soubor '%1' může být součástí obrázkové řady. Chcete jej tak importovat? - - - - You must specify a project file to export - Musíte určit soubor projektu pro export - - - - Specified project does not exist - Daný projekt neexistuje - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - Project contains no sequences, nothing to export - Projekt neobsahuje žádné úryvky, není co exportovat - - - This project has multiple sequences. Which do you wish to export? - V tomto projektu je více úryvků. Který chcete exportovat? - - - Enter number (or %1 to cancel): - Zadejte číslo (nebo %1 pro zrušení): - - - Invalid sequence number - Neplatné číslo úryvku - - - Export succeeded - Export proběhl v pořádku - - - Export failed: %1 - Nepodařilo se exportovat: %1 - - - Project failed to load: %1 - Projekt se nepodařilo načíst: %1 - - - - Failed to open startup file - Nepodařilo se otevřít spouštěcí soubor - - - - The project "%1" doesn't exist. A new project will be started instead. - Projekt "%1" neexistuje. Místo toho bude zahájen nový projekt. - - - - - Missing OpenTimelineIO Libraries - Chybí knihovny OpenTimelineIO - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - Toto sestavení bylo přeloženo bez OpenTimelineIO, a proto nemůže otevřít soubory OpenTimelineIO. - - - Save Project - Uložit projekt - - - - - Error - Chyba - - - - This Sequence is empty. There is nothing to export. - Tento úryvek je prázdný. Není co exportovat. - - - - No valid sequence detected. + +< translation > Nepodařilo +se +importovat +záznam < /translation> +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation > Nepodařilo +se +najít +panel +s +činným +projektem < /translation> +< /message> +< message > + + No +Active +Project < /source> +< translation > Žádný +činný +projekt < /translation> +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation > V současnosti +není +otevřen +projekt, pro +nějž +by +se +daly +nastavit +vlastnosti < /translation> +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation > Nepodařilo +se +vytvořit +novou +složku < /translation> +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation > Nepodařilo +se +najít +činný +projekt < /translation> +< /message> +< message > + + New +Folder < /source> +< translation > Nová +složka < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation > Nepodařilo +se +vytvořit +nový +úryvek < /translation> +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation > Zjištěna +možná +obrázková +řada < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - Nezjištěn žádný platný úryvek. +as +such ? + < translation > Soubor & apos; +% +1 & apos; +může +být +součástí +obrázkové +řady.Chcete +jej +tak +importovat ? +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation > Musíte +určit +soubor +projektu +pro +export + +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation > Daný +projekt +neexistuje < /translation> +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > + < /message> + < message > + Project +contains +no +sequences, nothing +to +export + +< translation +type = "vanished" > Projekt +neobsahuje +žádné +úryvky, není +co +exportovat < /translation> +< /message> +< message > +This +project +has +multiple +sequences.Which +do you wish +to +export +? + < translation type = "vanished" > V +tomto +projektu +je +více +úryvků.Který +chcete +exportovat ? + < /message> + < message > + Enter number(or % 1 +to +cancel +): + +< translation +type = "vanished" > Zadejte +číslo(nebo % 1 +pro +zrušení +): + +< /message> +< message > +Invalid +sequence +number < /source> +< translation +type = "vanished" > Neplatné +číslo +úryvku < /translation> +< /message> +< message > +Export +succeeded < /source> +< translation +type = "vanished" > Export +proběhl +v +pořádku < /translation> +< /message> +< message > +Export +failed: % +1 < /source> +< translation +type = "vanished" > Nepodařilo +se +exportovat: % +1 < /translation> +< /message> +< message > +Project +failed +to +load: % +1 < /source> +< translation +type = "vanished" > Projekt +se +nepodařilo +načíst: % +1 < /translation> +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation > Nepodařilo +se +otevřít +spouštěcí +soubor < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation > Projekt & quot; +% +1 & quot; +neexistuje.Místo +toho +bude +zahájen +nový +projekt. < /translation> +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation > Chybí +knihovny +OpenTimelineIO < /translation> +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation > Toto +sestavení +bylo +přeloženo +bez +OpenTimelineIO, a +proto +nemůže +otevřít +soubory +OpenTimelineIO. < /translation> +< /message> +< message > +Save +Project < /source> +< translation +type = "vanished" > Uložit +projekt < /translation> +< /message> +< message > + + +Error < /source> +< translation > Chyba < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation > Tento +úryvek +je +prázdný.Není +co +exportovat. < /translation> +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation > Nezjištěn +žádný +platný +úryvek.Ujistěte +se, že +je +úryvek +načten +a +má +připojený +uzel +prohlížeče. < /translation> +< /message> +< message > +Olive +Project < /source> +< translation +type = "vanished" > Projekt +Olive < /translation> +< /message> +< message > + +OpenTimelineIO < /source> +< translation > OpenTimelineIO < /translation> +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Ujistěte se, že je úryvek načten a má připojený uzel prohlížeče. - - - Olive Project - Projekt Olive - - - - OpenTimelineIO - OpenTimelineIO - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > Uložit +projekt +jako < /translation> +< /message> +< message > + + Load +Project < /source> +< translation > Načíst +projekt < /translation> +< /message> +< message > + + Label +Node < /source> +< translation > Označit +uzel < /translation> +< /message> +< message > + + Set +node +label < /source> +< translation > Nastavit +štítek +uzlu < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > Úryvek % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation > Nelze +otevřít +nedávný +projekt < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation > Projekt & quot; +% +1 & quot; +neexistuje.Chcete +tento +soubor +odstranit +ze +seznamu +nedávno +otevřených +souborů ? +< /message> +< message > + + Unsaved +Changes < /source> +< translation > Neuložené +změny < /translation> +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation > Projekt & apos; +% +1 & apos; +má +neuložené +změny.Chcete +je +uložit ? +< /message> +< message > + + Save < /source> + < translation > Uložit < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > Uložit +vše < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > Neukládat < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translation +type = "vanished" > Neukládat +vše < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation > Nepodařilo +se +uložit +úryvek +do vyrovnávací paměti < /translation> +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation > Nenalezen +žádný +prohlížeč +s +tímto +úryvkem. < /translation> +< /message> +< message > + + Open +Project < /source> +< translation > Otevřít +projekt < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::CrashHandlerDialog < /name> + < message > + Olive < /source> + < translation +type = "vanished" > Olive < /translation> + < /message> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "vanished" > Je +nám +to +líto, ale +Olive +spadl.Pomozte +nám +jej +opravit +zasláním +chybové +zprávy. < /translation> +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation > Co +nejpodrobněji +popište, co +jste +dělal.Pokud +můžete, poskytněte +popis +kroků +k +zopakování +tohoto +pádu. < /translation> +< /message> +< message > + + Crash +Report: +< translation > Zpráva +o +pádu: +< /message> +< message > + + Send +Error +Report < /source> +< translation > Poslat +zprávu +o +chybě < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > Neposílat < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > Čeká +se +na +vytvoření +zprávy +o +pádu +... + +< /message> +< message > + + Upload +Failed < /source> +< translation > Nahrání +selhalo < /translation> +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "vanished" > Nepodařilo +se +poslat +zprávu +o +chybě.Zkuste +to, prosím, znovu +později. < /translation> +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "vanished" > Žádné +shrnutí +pádu < /translation> +< /message> +< message > +Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "vanished" > Opravdu +chcete +odeslat +zprávu +o +chybě +bez +shrnutí +okolností +pádu ? +< /message> +< message > + + + Failed +to +send +report < /source> +< translation > Nepodařilo +se +odeslat +hlášení < /translation> +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation > Nepodařilo +se +najít +symboly +nutné +k +odeslání +hlášení.Toto +je +problém +s +balením.Informujte +prosím +správce +tohoto +balíčku. < /translation> +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation > Soubor +symbolu +se +nepodařilo +otevřít.Možná +nemáte +oprávnění +pro +přístupování +k +němu. < /translation> +< /message> +< message > + + Confirm +Close < /source> +< translation > Potvrdit +zavření < /translation> +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation > Zpráva o +pádu +se +stále +nahrává.Uzavření +nyní +může +mít +za +následek, že +nebude +odesláno +žádné +hlášení.Opravdu +chcete +zavřít ? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + +Texture < /source> +< translation > Povrch < /translation> +< /message> +< message > + +Left < /source> +< translation > Vlevo < /translation> +< /message> +< message > + +Top < /source> +< translation > Nahoře < /translation> +< /message> +< message > + +Right < /source> +< translation > Vpravo < /translation> +< /message> +< message > + +Bottom < /source> +< translation > Dole < /translation> +< /message> +< message > + +Feather < /source> +< translation > Pero < /translation> +< /message> +< message > + +Crop < /source> +< translation > Oříznout < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation > Oříznout +okraje +obrázku. < /translation> +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > Prolnutí +záběrů < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation > Plynulý +přechod +mezi +dvěma +záběry. < /translation> +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > Editor +křivky < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation > Zvětšit +pro +přizpůsobení < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation > Zvětšit +pro +přizpůsobení +vybraného < /translation> +< /message> +< message > + + Reset +Zoom < /source> +< translation > Obnovit +výchozí +zvětšení < /translation> +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > Lineární < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + +Hold < /source> +< translation > Držet < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Vstup < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Zelená < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Modrá < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > Metoda < /translation> +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation > Ponořit +do barvy < /translation> +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation > Přechod +mezi +záběry +ponořením +do barvy. < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Barva < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation > Disková +vyrovnávací +paměť: % +1 < /translation> +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation > Nastavení +diskové +vyrovnávací +paměti < /translation> +< /message> +< message > + + Maximum +Disk +Cache: +< translation > Největší +disková +vyrovnávací +paměť: +< /message> +< message > + + % 1 +GB < /source> +< translation > % 1 +GB < /translation> +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation > Vyprázdnit +diskovou +vyrovnávací +paměť < /translation> +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation > Při +zavření +automaticky +vyprázdnit +diskovou +vyrovnávací +paměť < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation > Opravdu chcete +vyprázdnit +diskovou +vyrovnávací +paměť +v & apos; +% +1 & apos; + ? + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation > Disková +vyrovnávací +paměť +vyprázdněna < /translation> +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation > Diskovou +vyrovnávací +paměť +se +nepodařilo +plně +vyprázdnit.Možná +budete +muset +soubory +vyrovnávací +paměti +odstranit +ručně. < /translation> +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation > Disková +vyrovnávací +paměť +částečně +vyprázdněna < /translation> +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation > Chyba +diskové +vyrovnávací +paměti < /translation> +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation > Nelze +nastavit +vlastní +diskovou +vyrovnávací +paměť +aplikace.Místo +toho +se +používá +výchozí. < /translation> +< /message> +< message > + + Disk +Cache < /source> +< translation > Disková +vyrovnávací +paměť < /translation> +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation > Rozhodl jste +se +změnit +výchozí +umístění +diskové +vyrovnávací +paměti.To +zneplatní +vaši +nynější +vyrovnávací +paměť.Chcete +pokračovat ? +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation > Nepodařilo +se +otevřít +diskovou +vyrovnávací +paměť & quot; +% +1 & quot; +. +Zkuste +jinou +složku. < /translation> +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Vstup < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > Zobrazení < /translation> +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Pohled < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Směr < /translation> +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Barva < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Neprůhlednost < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > Uplynulo +: % +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > Zbývá +: % +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + +Advanced < /source> +< translation > Pokročilé < /translation> +< /message> +< message > + + Pixel < /source> + < translation > Obrazový +bod < /translation> +< /message> +< message > + + Pixel +Format: +< translation > Formát +pixelu: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Performance < /source> +< translation > Provedení < /translation> +< /message> +< message > + + Threads +: + +< translation > Vlákna +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > Kodek +: + +< /message> +< message > + + Sample +Rate: +< translation > Vzorkovací +kmitočet: +< /message> +< message > + + Channel +Layout: +< translation > Rozložení +kanálu: +< /message> +< message > + + Format +: + +< translation > Formát +: + +< /message> +< message > + + Bit +Rate: +< translation > Datový +tok: +< /message> +< message > + + % 1 +kbps < /source> +< translation > % 1 +kB / s < /translation> +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + H +.264 < /source> +< translation > H +.264 < /translation> +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > H +.265 < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +ProRes < /source> +< translation > ProRes < /translation> +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +MP2 < /source> +< translation > MP2 < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +AAC < /source> +< translation > AAC < /translation> +< /message> +< message > + +PCM(Uncompressed) < /source> +< translation > PCM(nekomprimovaný) < /translation> +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Neznámý < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > Název +souboru: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation > Procházet +na +souborový +název +eportovaného +souboru < /translation> +< /message> +< message > + + Preset +: + +< translation > Přednastavení +: + +< /message> +< message > +Same +As +Source - High +Quality < /source> +< translation +type = "vanished" > Stejné +jako +zdroj - vysoká +kvalita < /translation> +< /message> +< message > +Same +As +Source - Medium +Quality < /source> +< translation +type = "vanished" > Stejné +jako +zdroj - střední +kvalita < /translation> +< /message> +< message > +Same +As +Source - Low +Quality < /source> +< translation +type = "vanished" > Stejné +jako +zdroj - nízká +kvalita < /translation> +< /message> +< message > + + Range +: + +< translation > Rozsah +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation > Celý +úryvek < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > Od +začátku +po +konec < /translation> +< /message> +< message > + + Format +: + +< translation > Formát +: + +< /message> +< message > + + Export +Video < /source> +< translation > Exportovat +obraz < /translation> +< /message> +< message > + + Export +Audio < /source> +< translation > Exportovat +zvuk < /translation> +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Obraz < /translation> +< /message> +< message > + +Audio < /source> +< translation > Zvuk < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > Exportovat < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Zrušit < /translation> +< /message> +< message > + +Preview < /source> +< translation > Náhled < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation > Neplatné +parametry < /translation> +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Výchozí < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > + < /message> + < message > + Both +video +and +audio +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "vanished" > Obraz +i +zvuk +jsou +vypnuty.Není +co +exportovat. < /translation> +< /message> +< message > + + + + Invalid +filename < /source> +< translation > Neplatný +název +souboru < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation > Název souboru +musí +obsahovat +příponu & quot; +% +1 & quot; +. +Chcete +ji +připojit +automaticky ? +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation > Nepodařilo +se +vytvořit +výstupní +adresář < /translation> +< /message> +< message > +The +intended +output +directory +doesn & apos; +t +exist +and +Olive +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "vanished" > Zamýšlený +výstupní +adresář +neexistuje +a +Olive +jej +nemohl +vytvořit.Vyberte +jiný +název +souboru. < /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation > Potvrdit +přepsání < /translation> +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation > Soubor & quot; +% +1 & quot; +již +existuje.Chcete +jej +přepsat ? +< /message> +< message > + + Invalid +Parameters < /source> +< translation > Neplatné +parametry < /translation> +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation > Šířka +a +výška +musí +být +násobkem +2. < /translation> +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + Matroska +Video < /source> +< translation > Video +Matroska < /translation> +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > Video +MPEG - 4 < /translation> +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +QuickTime < /source> +< translation > QuickTime < /translation> +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > MP3 < /translation> +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Neznámý < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Obraz < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Zvuk < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > Titulek < /translation> +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Název +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation > Exportuje +se & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation > Nepodařilo +se +vytvořit +kodér < /translation> +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +open +file < /source> +< translation +type = "vanished" > Nepodařilo +se +otevřít +soubor < /translation> +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation > Nepodařilo +se +přepsat & quot; +% +1 & quot; +. +Výsledný +soubor +byl +místo +toho +uložen +jako & quot; +% +2 & quot; +. + +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > +Basic < /source> +< translation +type = "vanished" > Základní < /translation> +< /message> +< message > + + General < /source> + < translation +type = "unfinished" > Obecné < /translation> +< /message> +< message > + + Width +: + +< translation > Šířka +: + +< /message> +< message > + + Height +: + +< translation > Výška +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > Zachovat +poměr +stran: +< /message> +< message > + + Scaling +Method: +< translation > Způsob +změny +velikosti: +< /message> +< message > + +Fit < /source> +< translation > Přizpůsobit < /translation> +< /message> +< message > + +Stretch < /source> +< translation > Roztáhnout < /translation> +< /message> +< message > + +Crop < /source> +< translation > Oříznout < /translation> +< /message> +< message > + + Frame +Rate: +< translation > Snímková +frekvence: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > Poměr +stran +pixelu: +< /message> +< message > + + Interlacing +: + +< translation > Prokládání +: + +< /message> +< message > + + Quality +: + +< translation > Kvalita +: + +< /message> +< message > + +Codec < /source> +< translation > Kodek < /translation> +< /message> +< message > + + Codec +: + +< translation > Kodek +: + +< /message> +< message > + +Advanced < /source> +< translation > Pokročilé < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation > Otevřít +adresář < /translation> +< /message> +< message > + + Open +File < /source> +< translation > Otevřít +soubor < /translation> +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Vstup < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > % 1 +dB < /translation> +< /message> +< message > + + % 1 % +< translation > % 1 % +< /message> +< message > + + ∞ +< translation >∞ +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + +Children < /source> +< translation > Potomci < /translation> +< /message> +< message > + +Folder < /source> +< translation > Složka < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation > Uspořádejte +několik +položek +do jedné sbírky. < /translation> +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation > Název +souboru < /translation> +< /message> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "vanished" > % 1 +Hz < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation > % 1 +: +Obrázek - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation > % 1 +: +Obraz - % 2 +x % 3 < /translation> +< /message> +< message > + % 1 +: +Audio - % 2 +Channel(s), +% +3 +Hz < /source> +< translation +type = "vanished" > % 1 +: +Zvuk - % 2 +kanál(y), +% +3 +Hz < /translation> +< /message> +< message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Obraz < /translation> +< /message> +< message > + +Audio < /source> +< translation > Zvuk < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > Titulek < /translation> +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > + < /message> + < message > + Data < /source> + < translation +type = "vanished" > Data < /translation> + < /message> + < message > + Attachment < /source> + < translation +type = "vanished" > Příloha < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Neznámý < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation > Název +souboru: % +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "vanished" > Tento +záznam +není +platný +pro +použití < /translation> +< /message> +< message > +Footage < /source> +< translation +type = "vanished" > Záznam < /translation> +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation > Nahrajte +do skladby obraz, zvuk +nebo +souborry +statických +obrázků. < /translation> +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation > & quot; +% +1 & quot; +Vlastnosti < /translation> +< /message> +< message > + + Name +: + +< translation > Název +: + +< /message> +< message > + + Tracks +: + +< translation > Stopy +: + +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Neznámý < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + +Footage < /source> +< translation > Záznam < /translation> +< /message> +< message > + + Filename < /source> + < translation > Název +souboru < /translation> +< /message> +< message > + +Actions < /source> +< translation > Činnosti < /translation> +< /message> +< message > + +Browse < /source> +< translation > Procházet < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation > Opětovně +propojit +záběry < /translation> +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation > Opětovně +propojit & quot; +% +1 & quot; + +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "vanished" > Všechny +soubory < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation > Prohlížeč +záznamu < /translation> +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > Vlastní +... + +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > Vlastní( % 1 +) + +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + +Gap < /source> +< translation > Mezera < /translation> +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation > Na +čase +založený +uzel +představující +prázdné +místo. < /translation> +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > Základ < /translation> +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > Cílový +datový +tok(MB / s) +: + +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > Největší +datový +tok(MB / s) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Dva +průchody < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > Cílová +velikost +souboru(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Dva +průchody < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation > Metoda +komprese: +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation > Činitel +stálého +datového +toku < /translation> +< /message> +< message > + + Target +Bit +Rate < /source> +< translation > Cílový +datový +tok < /translation> +< /message> +< message > + + Target +File +Size < /source> +< translation > Cílová +velikost +souboru < /translation> +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation > Obrázková +řada: +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + +None(Progressive) < /source> +< translation > Žádný(progresivní) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation > Nejprve +horní +pole < /translation> +< /message> +< message > + + Bottom - Field +First < /source> +< translation > Nejprve +dolní +pole < /translation> +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation > Vlastnosti +klíčového +snímku < /translation> +< /message> +< message > + + In +: + +< translation > Začátek +: + +< /message> +< message > + + Out +: + +< translation > Konec +: + +< /message> +< message > + +Linear < /source> +< translation > Lineární < /translation> +< /message> +< message > + +Hold < /source> +< translation > Držet < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Lineární < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Držet < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > & Vlastnosti < /translation> +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > Lineární < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > Bézier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > Držet < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "vanished" > & Vlastnosti < /translation> + < /message> + < /context> + < context > + olive::LoadOTIOTask < /name> + < message > + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; + +< translation +type = "vanished" > Nepodařilo +se +načíst +OpenTimelineIO +ze +souboru & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -To remedy this, please do one of the following: +OpenTimelineIO +Error: -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - Uložit projekt jako - - - - Load Project - Načíst projekt - - - - Label Node - Označit uzel - - - - Set node label - Nastavit štítek uzlu - - - - Sequence %1 - Úryvek %1 - - - - Cannot open recent project - Nelze otevřít nedávný projekt - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - Projekt "%1" neexistuje. Chcete tento soubor odstranit ze seznamu nedávno otevřených souborů? - - - - Unsaved Changes - Neuložené změny - - - - The project '%1' has unsaved changes. Would you like to save them? - Projekt '%1' má neuložené změny. Chcete je uložit? - - - - Save - Uložit - - - Save All - Uložit vše - - - - Don't Save - Neukládat - - - Don't Save All - Neukládat vše - - - - Failed to cache sequence - Nepodařilo se uložit úryvek do vyrovnávací paměti - - - - No active viewer found with this sequence. - Nenalezen žádný prohlížeč s tímto úryvkem. - - - - Open Project - Otevřít projekt - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - Je nám to líto, ale Olive spadl. Pomozte nám jej opravit zasláním chybové zprávy. - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - Co nejpodrobněji popište, co jste dělal. Pokud můžete, poskytněte popis kroků k zopakování tohoto pádu. - - - - Crash Report: - Zpráva o pádu: - - - - Send Error Report - Poslat zprávu o chybě - - - - Don't Send - Neposílat - - - - Waiting for crash report to be generated... - Čeká se na vytvoření zprávy o pádu... - - - - Upload Failed - Nahrání selhalo - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: - -%1 - - - - - You must write a description to submit this crash report. - - - - Failed to send error report. Please try again later. - Nepodařilo se poslat zprávu o chybě. Zkuste to, prosím, znovu později. - - - No Crash Summary - Žádné shrnutí pádu - - - Are you sure you want to send an error report with no crash summary? - Opravdu chcete odeslat zprávu o chybě bez shrnutí okolností pádu? - - - - - Failed to send report - Nepodařilo se odeslat hlášení - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - Nepodařilo se najít symboly nutné k odeslání hlášení. Toto je problém s balením. Informujte prosím správce tohoto balíčku. - - - - Failed to open symbol file. You may not have permission to access it. - Soubor symbolu se nepodařilo otevřít. Možná nemáte oprávnění pro přístupování k němu. - - - - Confirm Close - Potvrdit zavření - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - Zpráva o pádu se stále nahrává. Uzavření nyní může mít za následek, že nebude odesláno žádné hlášení. Opravdu chcete zavřít? - - - - olive::CropDistortNode - - - Texture - Povrch - - - - Left - Vlevo - - - - Top - Nahoře - - - - Right - Vpravo - - - - Bottom - Dole - - - - Feather - Pero - - - - Crop - Oříznout - - - - Crop the edges of an image. - Oříznout okraje obrázku. - - - - olive::CrossDissolveTransition - - - Cross Dissolve - Prolnutí záběrů - - - - Smoothly transition between two clips. - Plynulý přechod mezi dvěma záběry. - - - - olive::CurvePanel - - - Curve Editor - Editor křivky - - - - olive::CurveView - - - Zoom to Fit - Zvětšit pro přizpůsobení - - - - Zoom to Fit Selected - Zvětšit pro přizpůsobení vybraného - - - - Reset Zoom - Obnovit výchozí zvětšení - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Lineární - - - - Bezier - Bézier - - - - Hold - Držet - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - Vstup - - - - Key Color - - - - - Green - Zelená - - - - Blue - Modrá - - - - Method - Metoda - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - Ponořit do barvy - - - - Transition between clips by dipping to a color. - Přechod mezi záběry ponořením do barvy. - - - - Color - Barva - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - Disková vyrovnávací paměť: %1 - - - - Disk Cache Settings - Nastavení diskové vyrovnávací paměti - - - - Maximum Disk Cache: - Největší disková vyrovnávací paměť: - - - - %1 GB - %1 GB - - - - - - Clear Disk Cache - Vyprázdnit diskovou vyrovnávací paměť - - - - Automatically clear disk cache on close - Při zavření automaticky vyprázdnit diskovou vyrovnávací paměť - - - - Are you sure you want to clear the disk cache in '%1'? - Opravdu chcete vyprázdnit diskovou vyrovnávací paměť v '%1'? - - - - Disk Cache Cleared - Disková vyrovnávací paměť vyprázdněna - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - Diskovou vyrovnávací paměť se nepodařilo plně vyprázdnit. Možná budete muset soubory vyrovnávací paměti odstranit ručně. - - - - Disk Cache Partially Cleared - Disková vyrovnávací paměť částečně vyprázdněna - - - - olive::DiskManager - - - - Disk Cache Error - Chyba diskové vyrovnávací paměti - - - - Unable to set custom application disk cache. Using default instead. - Nelze nastavit vlastní diskovou vyrovnávací paměť aplikace. Místo toho se používá výchozí. - - - - Disk Cache - Disková vyrovnávací paměť - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - Rozhodl jste se změnit výchozí umístění diskové vyrovnávací paměti. To zneplatní vaši nynější vyrovnávací paměť. Chcete pokračovat? - - - - Failed to open disk cache at "%1". Try a different folder. - Nepodařilo se otevřít diskovou vyrovnávací paměť "%1". Zkuste jinou složku. - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - Vstup - - - - Display - Zobrazení - - - - View - Pohled - - - - Direction - Směr - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - Barva - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Neprůhlednost - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - Uplynulo: %1 - - - - Remaining: %1 - Zbývá: %1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Pokročilé - - - - Pixel - Obrazový bod - - - - Pixel Format: - Formát pixelu: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - Provedení - - - - Threads: - Vlákna: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Kodek: - - - - Sample Rate: - Vzorkovací kmitočet: - - - - Channel Layout: - Rozložení kanálu: - - - - Format: - Formát: - - - - Bit Rate: - Datový tok: - - - - %1 kbps - %1 kB/s - - - - olive::ExportCodec - - - DNxHD - DNxHD - - - - H.264 - H.264 - - - - H.264 RGB - - - - - H.265 - H.265 - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - ProRes - ProRes - - - - Cineform - - - - - TIFF - TIFF - - - - MP2 - MP2 - - - - MP3 - MP3 - - - - AAC - AAC - - - - PCM (Uncompressed) - PCM (nekomprimovaný) - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - Neznámý - - - - olive::ExportDialog - - - Filename: - Název souboru: - - - - Browse for exported file filename - Procházet na souborový název eportovaného souboru - - - - Preset: - Přednastavení: - - - Same As Source - High Quality - Stejné jako zdroj - vysoká kvalita - - - Same As Source - Medium Quality - Stejné jako zdroj - střední kvalita - - - Same As Source - Low Quality - Stejné jako zdroj - nízká kvalita - - - - Range: - Rozsah: - - - - Entire Sequence - Celý úryvek - - - - In to Out - Od začátku po konec - - - - Format: - Formát: - - - - Export Video - Exportovat obraz - - - - Export Audio - Exportovat zvuk - - - - Export Subtitles - - - - - Video - Obraz - - - - Audio - Zvuk - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Exportovat - - - - Cancel - Zrušit - - - - Preview - Náhled - - - - Invalid parameters - Neplatné parametry - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - - Default - Výchozí - - - - Last Used - - - - Both video and audio are disabled. There's nothing to export. - Obraz i zvuk jsou vypnuty. Není co exportovat. - - - - - - Invalid filename - Neplatný název souboru - - - - The filename must contain the extension "%1". Would you like to append it automatically? - Název souboru musí obsahovat příponu "%1". Chcete ji připojit automaticky? - - - - Failed to create output directory - Nepodařilo se vytvořit výstupní adresář - - - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - Zamýšlený výstupní adresář neexistuje a Olive jej nemohl vytvořit. Vyberte jiný název souboru. - - - - Confirm Overwrite - Potvrdit přepsání - - - - The file "%1" already exists. Do you want to overwrite it? - Soubor "%1" již existuje. Chcete jej přepsat? - - - - Invalid Parameters - Neplatné parametry - - - - Width and height must be multiples of 2. - Šířka a výška musí být násobkem 2. - - - - olive::ExportFormat - - - DNxHD - DNxHD - - - - Matroska Video - Video Matroska - - - - MPEG-4 Video - Video MPEG-4 - - - - MPEG-4 Audio - - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - TIFF - TIFF - - - - QuickTime - QuickTime - - - - Wave Audio - - - - - AIFF - - - - - MP3 - MP3 - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - Neznámý - - - - olive::ExportFormatComboBox - - - Video - Obraz - - - - Audio - Zvuk - - - - Subtitle - Titulek - - - - olive::ExportSavePresetDialog - - - Name: - Název: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Kodek: - - - - olive::ExportTask - - - Exporting "%1" - Exportuje se "%1" - - - - Failed to create encoder - Nepodařilo se vytvořit kodér - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - Failed to open file - Nepodařilo se otevřít soubor - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - Nepodařilo se přepsat "%1". Výsledný soubor byl místo toho uložen jako "%2". - - - - olive::ExportVideoTab - - Basic - Základní - - - - General - Obecné - - - - Width: - Šířka: - - - - Height: - Výška: - - - - Maintain Aspect Ratio: - Zachovat poměr stran: - - - - Scaling Method: - Způsob změny velikosti: - - - - Fit - Přizpůsobit - - - - Stretch - Roztáhnout - - - - Crop - Oříznout - - - - Frame Rate: - Snímková frekvence: - - - - Pixel Aspect Ratio: - Poměr stran pixelu: - - - - Interlacing: - Prokládání: - - - - Quality: - Kvalita: - - - - Codec - Kodek - - - - Codec: - Kodek: - - - - Advanced - Pokročilé - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - Otevřít adresář - - - - Open File - Otevřít soubor - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - Vstup - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - %1 dB - - - - %1% - %1% - - - - ∞ - - - - - olive::Folder - - - Children - Potomci - - - - Folder - Složka - - - - Organize several items into a single collection. - Uspořádejte několik položek do jedné sbírky. - - - - olive::Footage - - - Filename - Název souboru - - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - - %1: Image - %2x%3 - %1: Obrázek - %2x%3 - - - - %1: Video - %2x%3 - %1: Obraz - %2x%3 - - - %1: Audio - %2 Channel(s), %3Hz - %1: Zvuk - %2 kanál(y), %3 Hz - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - - %1: Subtitle - - - - - Video - Obraz - - - - Audio - Zvuk - - - - Subtitle - Titulek - - - - Invalid - - - - Data - Data - - - Attachment - Příloha - - - - Unknown - Neznámý - - - - Filename: %1 - Název souboru: %1 - - - This footage is not valid for use - Tento záznam není platný pro použití - - - Footage - Záznam - - - - Media - - - - - Import video, audio, or still image files into the composition. - Nahrajte do skladby obraz, zvuk nebo souborry statických obrázků. - - - - olive::FootagePropertiesDialog - - - "%1" Properties - "%1" Vlastnosti - - - - Name: - Název: - - - - Tracks: - Stopy: - - - - Subtitles - - - - - Unknown - Neznámý - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - Záznam - - - - Filename - Název souboru - - - - Actions - Činnosti - - - - Browse - Procházet - - - - Relink Footage - Opětovně propojit záběry - - - - Relink "%1" - Opětovně propojit "%1" - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Všechny soubory - - - - olive::FootageViewerPanel - - - Footage Viewer - Prohlížeč záznamu - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - Vlastní... - - - - Custom (%1) - Vlastní (%1) - - - - olive::GapBlock - - - Gap - Mezera - - - - A time-based node that represents an empty space. - Na čase založený uzel představující prázdné místo. - - - - olive::GeneratorWithMerge - - - Base - Základ - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - Cílový datový tok (MB/s): - - - - Maximum Bit Rate (Mbps): - Největší datový tok (MB/s): - - - - Two-Pass - Dva průchody - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Cílová velikost souboru (MB): - - - - Two-Pass - Dva průchody - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - Metoda komprese: - - - - Constant Rate Factor - Činitel stálého datového toku - - - - Target Bit Rate - Cílový datový tok - - - - Target File Size - Cílová velikost souboru - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - Obrázková řada: - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Žádný (progresivní) - - - - Top-Field First - Nejprve horní pole - - - - Bottom-Field First - Nejprve dolní pole - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - Vlastnosti klíčového snímku - - - - In: - Začátek: - - - - Out: - Konec: - - - - Linear - Lineární - - - - Hold - Držet - - - - Bezier - Bézier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Lineární - - - - Bezier - Bézier - - - - Hold - Držet - - - - P&roperties - &Vlastnosti - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Lineární - - - Bezier - Bézier - - - Hold - Držet - - - P&roperties - &Vlastnosti - - - - olive::LoadOTIOTask - - Failed to load OpenTimelineIO from file "%1" - Nepodařilo se načíst OpenTimelineIO ze souboru "%1" - - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - Neznámý kořenový prvek OpenTimelineIO - - - - Sequence %1 - Úryvek %1 - - - - Failed to load clip - Nepodařilo se načíst záběr - - - - olive::MainMenu - - - &Save '%1' - &Uložit '%1' - - - - Save '%1' &As - Uložit '%1' &jako - - - Close '%1' - Zavřít '%1' - - - Close All Except '%1' - Zavřít vše vyjma '%1' - - - - &Save Project - &Uložit projekt - - - - Save Project &As - Uložit projekt j&ako - - - Close Project - Zavřít projekt - - - Close All Except Current Project - Zavřít vše vyjma nynějšího projektu - - - - (None) - (žádný) - - - - &File - &Soubor - - - - &New - &Nový - - - - &Open Project - &Otevřít projekt - - - - Open &Recent - Otevřít &nedávný - - - - &Clear Recent List - V&yprázdnit seznam nedávno otevřených - - - Sa&ve All Projects - &Uložit všechny projekty - - - - &Import... - &Importovat... - - - - &Export - &Exportovat - - - - &Media... - &Záznamy... - - - &Project Properties... - Vlastnosti &projektu... - - - Close All Projects - Zavřít všechny projekty - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - W - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - M - - - - = - - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - Vlevo - - - - Space - - - - - Shift+Space - - - - - Right - Vpravo - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - J - - - - K - - - - - L - L - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation > Neznámý +kořenový +prvek +OpenTimelineIO < /translation> +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > Úryvek % 1 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation > Nepodařilo +se +načíst +záběr < /translation> +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation > & Uložit & apos; +% +1 & apos; + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > Uložit & apos; +% +1 & apos; +& +jako < /translation> +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > Zavřít & apos; +% +1 & apos; + +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "vanished" > Zavřít +vše +vyjma & apos; +% +1 & apos; + +< /message> +< message > + + & Save +Project < /source> +< translation > & Uložit +projekt < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation > Uložit +projekt +j & ako < /translation> +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > Zavřít +projekt < /translation> +< /message> +< message > +Close +All +Except +Current +Project < /source> +< translation +type = "vanished" > Zavřít +vše +vyjma +nynějšího +projektu < /translation> +< /message> +< message > + +(None) < /source> +< translation > (žádný) < /translation> +< /message> +< message > + + & File < /source> +< translation > & Soubor < /translation> +< /message> +< message > + + & New < /source> +< translation > & Nový < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation > & Otevřít +projekt < /translation> +< /message> +< message > + +Open & Recent < /source> +< translation > Otevřít & nedávný < /translation> +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > V & yprázdnit +seznam +nedávno +otevřených < /translation> +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > & Uložit +všechny +projekty < /translation> +< /message> +< message > + + & Import +... + +< translation > & Importovat +... + +< /message> +< message > + + & Export < /source> +< translation > & Exportovat < /translation> +< /message> +< message > + + & Media +... + +< translation > & Záznamy +... + +< /message> +< message > + & Project +Properties +... + +< translation +type = "vanished" > Vlastnosti & projektu +... + +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > Zavřít +všechny +projekty < /translation> +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > W < /translation> +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > M < /translation> +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > - +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > Vlevo < /translation> +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > Vpravo < /translation> +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > J < /translation> +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > L < /translation> +< /message> +< message > + + ` diff --git a/app/ts/de_DE.ts b/app/ts/de_DE.ts index 8eca6df2a..c1bf1966f 100644 --- a/app/ts/de_DE.ts +++ b/app/ts/de_DE.ts @@ -1,4124 +1,8486 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Mono - - - - Stereo - Stereo - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Unbekannt (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Fehler beim Laden der Einstellungen - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Mono < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Stereo < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Unbekannt(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Fehler +beim +Laden +der +Einstellungen < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - Die Anwendungseinstellungen konnten nicht geladen werden. In dieser Sitzung werden die Standardeinstellungen verwendet. +% 1 < /source> +< translation > Die +Anwendungseinstellungen +konnten +nicht +geladen +werden.In +dieser +Sitzung +werden +die +Standardeinstellungen +verwendet. -%1 - - - - Error saving settings - Fehler beim Speichern der Einstellungen - - - - Failed to save application settings. The application may lack write permissions for this location. - Die Anwendungseinstellungen konnten nicht gespeichert werden. Der Anwendung fehlen möglicherweise Schreibrechte für diesen Speicherort. - - - - Footage - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - Filename: %1 - Dateiname: %1 - - - This footage is not valid for use - Dieses Material ist nicht verwendbar - - - - ImportTool - - - Don't ask me again - Nicht erneut nachfragen - - - - No Active Sequence - Keine aktive Sequenz - - - - No sequence is currently open. Would you like to create one? - Aktuell ist keine Sequenz geöffnet. Möchten Sie eine neue erstellen? - - - - Automatically Detect Parameters From Footage - Parameter des Quellmaterials automatisch erkennen - - - - Set Parameters Manually - Parameter manuell einstellen - - - - NodeCopyPasteWidget - - Error pasting nodes - Fehler beim Einfügen von Nodes - - - Failed to paste nodes: %1 - Folgende Nodes konnten nicht eingefügt werden: %1 - - - - NodeFactory - - - None - Nichts - - - - NodeValue - - - None - Nichts - - - - Integer - Ganzzahl - - - - Float - Fließkommazahl - - - - Rational - Rationaler Bruch - - - - Boolean - Wahrheitswert - - - - Color - Farbe - - - - Matrix - Matrix - - - - Text - Text - - - - Font - Schriftart - - - - File - Datei - - - - Texture - Textur - - - - Samples - Samples - - - - Vector 2D - 2D-Vektor - - - - Vector 3D - 3D-Vektor - - - - Vector 4D - 4D-Vektor - - - - Bezier - Bezier - - - - Video Parameters - Video-Parameter - - - - Audio Parameters - Audio-Parameter - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - Unbekannt - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - Ausgang - - - - %1... - %1... - - - - OlivePluginInstance - - - Change %1 - %1 ändern - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Parameter bearbeiten - - - - PresetManager - - - Save Preset - Voreinstellung speichern - - - - Set preset name: - Name der Voreinstellung: - - - - Invalid preset name - Unzulässiger Voreinstellungs-Name - - - - You must enter a preset name - Bitte einen Voreinstellungs-Namen eingeben - - - - Preset exists - Voreinstellung existiert bereits - - - - A preset with this name already exists. Would you like to replace it? - Es gibt eine schon bestehende Voreinstellung mit diesem Namen. Soll sie ersetzt werden? - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - Individuelles Seitenverhältnis (z. B. "4:3", "16:9", ...): - - - - Invalid custom ratio - Unzulässiges Seitenverhältnis - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - "%1" konnte nicht als Seitenverhältnis interpretiert werden. Bitte einen rationalen Bruch mit ':' oder '/' als Trennzeichen angeben. - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - Leer - - - - Bars - Balken - - - - Shape - - - - - Solid - Fest - - - - Title - Titel - - - - Tone - Ton - - - - Subtitle - Untertitel - - - - Unknown - Unbekannt - - - - UndoStack - - - Undo %1 - Rückgängig %1 - - - - Redo %1 - Wiederherstellen %1 - - - - VideoParams - - - Full - Ganz - - - - 1/%1 - 1/%1 - - - - 8-bit - 8 Bit - - - - 10-bit Packed - - - - - 16-bit Integer - 16 Bit Ganzzahl - - - - Half-Float (16-bit) - Kurze Fließkommazahl (16 Bit) - - - - Full-Float (32-bit) - Lange Fließkommazahl (32 Bit) - - - - Unknown (0x%1) - Unbekannt (0x%1) - - - - %1 FPS - %1 FPS - - - - Square Pixels (%1) - Quadratische Pixel (%1) - - - - NTSC Standard (%1) - NTSC Standard (%1) - - - - NTSC Widescreen (%1) - NTSC Breitbild (%1) - - - - PAL Standard (%1) - PAL Standard (%1) - - - - PAL Widescreen (%1) - PAL Breitbild (%1) - - - - HD Anamorphic 1080 (%1) - HD Anamorphotisch 1080 (%1) - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - Diese Hilfe anzeigen - - - - Show application version - Version der Anwendung anzeigen - - - - Start in full-screen mode - Im Vollbildmodus starten - - - - Export only (No GUI) - Nur exportieren (ohne graphische Benutzeroberfläche) - - - - Override language with file - Anwendungssprache aus einer externen Übersetzungsdatei laden - - - - qm-file - qm-Datei - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - Projekt, das beim Start geöffnet werden soll - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > Fehler +beim +Speichern +der +Einstellungen < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > Die +Anwendungseinstellungen +konnten +nicht +gespeichert +werden.Der +Anwendung +fehlen +möglicherweise +Schreibrechte +für +diesen +Speicherort. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "vanished" > % 1 +Hz < /translation> +< /message> +< message > +Filename +: % +1 < /source> +< translation +type = "vanished" > Dateiname +: % +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "vanished" > Dieses +Material +ist +nicht +verwendbar < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > Nicht +erneut +nachfragen < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation > Keine +aktive +Sequenz < /translation> +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation > Aktuell ist +keine +Sequenz +geöffnet.Möchten +Sie +eine +neue +erstellen ? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > Parameter +des +Quellmaterials +automatisch +erkennen < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > Parameter +manuell +einstellen < /translation> +< /message> +< /context> +< context > +NodeCopyPasteWidget < /name> +< message > +Error +pasting +nodes < /source> +< translation +type = "vanished" > Fehler +beim +Einfügen +von +Nodes < /translation> +< /message> +< message > +Failed +to +paste +nodes: % +1 < /source> +< translation +type = "vanished" > Folgende +Nodes +konnten +nicht +eingefügt +werden: % +1 < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > Nichts < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + +None < /source> +< translation > Nichts < /translation> +< /message> +< message > + +Integer < /source> +< translation > Ganzzahl < /translation> +< /message> +< message > + +Float < /source> +< translation > Fließkommazahl < /translation> +< /message> +< message > + + Rational < /source> + < translation > Rationaler +Bruch < /translation> +< /message> +< message > + +Boolean < /source> +< translation > Wahrheitswert < /translation> +< /message> +< message > + +Color < /source> +< translation > Farbe < /translation> +< /message> +< message > + +Matrix < /source> +< translation > Matrix < /translation> +< /message> +< message > + +Text < /source> +< translation > Text < /translation> +< /message> +< message > + +Font < /source> +< translation > Schriftart < /translation> +< /message> +< message > + +File < /source> +< translation > Datei < /translation> +< /message> +< message > + +Texture < /source> +< translation > Textur < /translation> +< /message> +< message > + +Samples < /source> +< translation > Samples < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation > 2 +D - Vektor < /translation> +< /message> +< message > + + Vector +3 +D < /source> +< translation > 3 +D - Vektor < /translation> +< /message> +< message > + + Vector +4 +D < /source> +< translation > 4 +D - Vektor < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation > Video - Parameter < /translation> +< /message> +< message > + + Audio +Parameters < /source> +< translation > Audio - Parameter < /translation> +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Unbekannt < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > Ausgang < /translation> +< /message> +< message > + + % 1... < /source> +< translation > % 1... < /translation> +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + + Change % 1 < /source> + < translation > % 1 +ändern < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Parameter +bearbeiten < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation > Voreinstellung +speichern < /translation> +< /message> +< message > + + Set +preset +name: +< translation > Name +der +Voreinstellung: +< /message> +< message > + + Invalid +preset +name < /source> +< translation > Unzulässiger +Voreinstellungs - Name < /translation> +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation > Bitte +einen +Voreinstellungs - Namen +eingeben < /translation> +< /message> +< message > + + Preset +exists < /source> +< translation > Voreinstellung +existiert +bereits < /translation> +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation > Es gibt +eine +schon +bestehende +Voreinstellung +mit +diesem +Namen.Soll +sie +ersetzt +werden ? +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation > Individuelles +Seitenverhältnis(z.B. & quot; +4 +: +3 & quot; +, & +quot; +16 +: +9 & quot; +, ...): + +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation > Unzulässiges +Seitenverhältnis < /translation> +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + & quot; +% +1 & quot; +konnte +nicht +als +Seitenverhältnis +interpretiert +werden.Bitte +einen +rationalen +Bruch +mit & apos; +:& +apos; +oder & apos; +/' als Trennzeichen angeben. + +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > Leer < /translation> +< /message> +< message > + +Bars < /source> +< translation > Balken < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Solid < /source> +< translation > Fest < /translation> +< /message> +< message > + +Title < /source> +< translation > Titel < /translation> +< /message> +< message > + +Tone < /source> +< translation > Ton < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > Untertitel < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Unbekannt < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + +Undo % 1 < /source> +< translation > Rückgängig % 1 < /translation> +< /message> +< message > + +Redo % 1 < /source> +< translation > Wiederherstellen % 1 < /translation> +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > Ganz < /translation> +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + + 8 - bit < /source> + < translation > 8 +Bit < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation > 16 +Bit +Ganzzahl < /translation> +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation > Kurze +Fließkommazahl(16 +Bit +) + +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation > Lange +Fließkommazahl(32 +Bit +) + +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > Unbekannt(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > % 1 +FPS < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation > Quadratische +Pixel( % 1 +) + +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > NTSC +Standard( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > NTSC +Breitbild( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > PAL +Standard( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > PAL +Breitbild( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation > HD +Anamorphotisch +1080( % 1 +) + +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > Diese +Hilfe +anzeigen < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > Version +der +Anwendung +anzeigen < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > Im +Vollbildmodus +starten < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > Nur +exportieren(ohne +graphische +Benutzeroberfläche +) + +< /message> +< message > + + Override +language +with file < /source> +< translation > Anwendungssprache aus +einer +externen +Übersetzungsdatei +laden < /translation> +< /message> +< message > + +qm - file < /source> +< translation > qm - Datei < /translation> +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > Projekt, das +beim +Start +geöffnet +werden +soll < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Vorgabe +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > Kompressions - Verfahren +: + +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > Konstante +Bitrate < /translation> +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + +About % 1 < /source> +< translation > Über % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "vanished" > Olive +ist +ein +nicht - linearer +Videoeditor.Das +Programm +steht +unter +der +GNU +GPL - Lizenz +Version +3. < /translation> +< /message> +< message > +<html>Olive +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from < a +href = +& +apos; +https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: + <html>Dieses +Projekt +wäre +nicht +möglich +ohne +die +großzügigen +Spender +auf < a +href = +& +apos; +https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: + + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +ist +ein +nicht - linearer +Videoeditor.Das +Programm +ist +Freie +Software +und +wird +von +der +GNU +GPL - Lizenz +geschützt. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > Der +Quellcode +von +Olive +steht +auf +der +Webseite +des +Projekts +zur +Verfügung. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation > Aktion +suchen +... + +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > +Qt < /source> +< translation +type = "vanished" > Qt < /translation> + < /message> + < message > + Unknown < /source> + < translation +type = "vanished" > Unbekannt < /translation> +< /message> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > Pegel < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation > Automatische +Wiederherstellung < /translation> +< /message> +< message > + +Load < /source> +< translation > Laden < /translation> +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > Anfangspunkt +: + +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > Endpunkt +: + +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation > Länge < /translation> + < /message> + < message > + Media +In < /source> +< translation +type = "vanished" > Medien - Eingang < /translation> +< /message> +< message > + + Enabled < /source> + < translation > Aktiviert < /translation> + < /message> + < message > + Speed < /source> + < translation +type = "vanished" > Geschwindigkeit < /translation> + < /message> + < message > + Reverse < /source> + < translation +type = "vanished" > Rückwärts < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > Unschärfe < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > Lässt +das +Bild +verschwimmen. < /translation> +< /message> +< message > + +Input < /source> +< translation > Eingang < /translation> +< /message> +< message > + +Method < /source> +< translation > Verfahren < /translation> +< /message> +< message > + +Box < /source> +< translation > Box < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > Gaußsch < /translation> +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Radius < /source> +< translation > Radius < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > Horizontal < /translation> +< /message> +< message > + +Vertical < /source> +< translation > Vertikal < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation > Rand - Pixel +wiederholen < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Richtung < /translation> +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Mitte < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Eingang < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > Qualität +: + +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Clip < /source> +< translation > Clip < /translation> +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation > Eine +zeitgesteuerte +Node, die +eine +Medienquelle +repräsentiert. < /translation> +< /message> +< message > + +Buffer < /source> +< translation > Puffer < /translation> +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > Medien - Eingang < /translation> +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > Geschwindigkeit < /translation> +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > Rückwärts < /translation> +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Wiederholen < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > Feststellen < /translation> +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + +Red < /source> +< translation > Rot < /translation> +< /message> +< message > + +Maroon < /source> +< translation > Kastanienbraun < /translation> +< /message> +< message > + +Orange < /source> +< translation > Orange < /translation> +< /message> +< message > + +Brown < /source> +< translation > Braun < /translation> +< /message> +< message > + + Yellow < /source> + < translation > Gelb < /translation> + < /message> + < message > + Olive < /source> + < translation +type = "vanished" > Olivgrün < /translation> +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Lime < /source> +< translation > Hellgrün < /translation> +< /message> +< message > + +Green < /source> +< translation > Grün < /translation> +< /message> +< message > + + Cyan < /source> + < translatorcomment > alternativ +: +Hellblau / Blaugrün < /translatorcomment> +< translation > Hellblau < /translation> +< /message> +< message > + +Teal < /source> +< translation > Blaugrün < /translation> +< /message> +< message > + +Blue < /source> +< translation > Blau < /translation> +< /message> +< message > + +Navy < /source> +< translation > Marineblau < /translation> +< /message> +< message > + +Pink < /source> +< translation > Rosa < /translation> +< /message> +< message > + +Purple < /source> +< translation > Violett < /translation> +< /message> +< message > + +Silver < /source> +< translation > Silbern < /translation> +< /message> +< message > + +Gray < /source> +< translation > Grau < /translation> +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > Farbe +auswählen < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Eingang < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Grün < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Blau < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation > Farbe < /translation> + < /message> + < /context> + < context > + olive::ColorManager < /name> + < message > + Configuration < /source> + < translation +type = "vanished" > Einstellungen < /translation> + < /message> + < message > + Default +Input < /source> +< translation +type = "vanished" > Standard - Eingang < /translation> + < /message> + < message > + Reference +Space < /source> +< translation +type = "vanished" > Referenzraum < /translation> + < /message> + < message > + Scene +Linear < /source> +< translation +type = "vanished" > Szenenlinear < /translation> + < /message> + < message > + Compositing +Log < /source> +< translation +type = "vanished" > Compositing - Protokoll < /translation> + < /message> + < message > + (built - in) < /source> + < translatorcomment > i.S.v.vom +Quellmaterial +übernommen / überliefert, oder +i.S.v.Olive - Standards ? + < translation type = "vanished" > (eingebaute) < /translation> + < /message> + < message > + Color +Manager < /source> +< translation +type = "vanished" > Farbmanagement < /translation> + < /message> + < message > + Color +management +configuration +for project. < /source> + < translation type = "vanished" > Farbmanagement - Einstellungen +für +dieses +Projekt. < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation > Farbmanagement < /translation> +< /message> +< message > + + Input +: + +< translation > Eingang +: + +< /message> +< message > + + Color +Space: +< translation > Farbraum +: + +< /message> +< message > + + Display +: + +< translation > Monitor +: + +< /message> +< message > + + View +: + +< translatorcomment > ? + < translation > Ansicht : +< /message> +< message > + + Look +: + +< translatorcomment > ? + < translation > Aussehen : +< /message> +< message > + +(None) < /source> +< translation > (Nichts) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Red < /source> +< translation > Rot < /translation> +< /message> +< message > + +Green < /source> +< translation > Grün < /translation> +< /message> +< message > + +Blue < /source> +< translation > Blau < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > Vorschau < /translation> +< /message> +< message > + +Input < /source> +< translation > Eingang < /translation> +< /message> +< message > + +Reference < /source> +< translatorcomment > Bezug / Quelle / Ursprung < /translatorcomment> +< translation > Referenz < /translation> +< /message> +< message > + +Display < /source> +< translatorcomment > ? +< translation > Display < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation > Audio +anpassen: % +1 +:% +2 < /translation> +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation > Import +fehlgeschlagen < /translation> +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation > Nichts +zu +importieren < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation > Importieren +... + +< /message> +< message > + + Import +footage +... + +< translatorcomment > Video - /Bildmaterial +Material +importieren +... + +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Vorgabe: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - Kompressions-Verfahren: - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - Konstante Bitrate - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - Über %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - Olive ist ein nicht-linearer Videoeditor. Das Programm steht unter der GNU GPL-Lizenz Version 3. - - - <html>Olive wouldn't be possible without the support of gracious donations from <a href='https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: - <html>Dieses Projekt wäre nicht möglich ohne die großzügigen Spender auf <a href='https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive ist ein nicht-linearer Videoeditor. Das Programm ist Freie Software und wird von der GNU GPL-Lizenz geschützt. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Der Quellcode von Olive steht auf der Webseite des Projekts zur Verfügung. - - - - olive::ActionSearch - - - Search for action... - Aktion suchen... - - - - olive::AudioManager - - Qt - Qt - - - Unknown - Unbekannt - - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - Pegel - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - Automatische Wiederherstellung - - - - Load - Laden - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bezier - - - - In: - Anfangspunkt: - - - - Out: - Endpunkt: - - - - olive::Block - - - Length - Länge - - - Media In - Medien-Eingang - - - - Enabled - Aktiviert - - - Speed - Geschwindigkeit - - - Reverse - Rückwärts - - - - olive::BlurFilterNode - - - Blur - Unschärfe - - - - Blurs an image. - Lässt das Bild verschwimmen. - - - - Input - Eingang - - - - Method - Verfahren - - - - Box - Box - - - - Gaussian - Gaußsch - - - - Directional - - - - - Radial - - - - - Radius - Radius - - - - Horizontal - Horizontal - - - - Vertical - Vertikal - - - - Repeat Edge Pixels - Rand-Pixel wiederholen - - - - Direction - Richtung - - - - Center - Mitte - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - Eingang - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - Qualität: - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - Clip - - - - A time-based node that represents a media source. - Eine zeitgesteuerte Node, die eine Medienquelle repräsentiert. - - - - Buffer - Puffer - - - - Media In - Medien-Eingang - - - - Speed - Geschwindigkeit - - - - Reverse - Rückwärts - - - - Maintain Audio Pitch - - - - - - Loop - Wiederholen - - - - None - - - - - Clamp - Feststellen - - - - olive::ColorCoding - - - Red - Rot - - - - Maroon - Kastanienbraun - - - - Orange - Orange - - - - Brown - Braun - - - - Yellow - Gelb - - - Olive - Olivgrün - - - - Oak - - - - - Lime - Hellgrün - - - - Green - Grün - - - - Cyan - alternativ: Hellblau/Blaugrün - Hellblau - - - - Teal - Blaugrün - - - - Blue - Blau - - - - Navy - Marineblau - - - - Pink - Rosa - - - - Purple - Violett - - - - Silver - Silbern - - - - Gray - Grau - - - - olive::ColorDialog - - - Select Color - Farbe auswählen - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - Eingang - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - Grün - - - - Blue - Blau - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Farbe - - - - olive::ColorManager - - Configuration - Einstellungen - - - Default Input - Standard-Eingang - - - Reference Space - Referenzraum - - - Scene Linear - Szenenlinear - - - Compositing Log - Compositing-Protokoll - - - (built-in) - i. S. v. vom Quellmaterial übernommen / überliefert, oder i. S. v. Olive-Standards? - (eingebaute) - - - Color Manager - Farbmanagement - - - Color management configuration for project. - Farbmanagement-Einstellungen für dieses Projekt. - - - - olive::ColorSpaceChooser - - - Color Management - Farbmanagement - - - - Input: - Eingang: - - - - Color Space: - Farbraum: - - - - Display: - Monitor: - - - - View: - ? - Ansicht: - - - - Look: - ? - Aussehen: - - - - (None) - (Nichts) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - Rot - - - - Green - Grün - - - - Blue - Blau - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - Vorschau - - - - Input - Eingang - - - - Reference - Bezug/Quelle/Ursprung - Referenz - - - - Display - ? - Display - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - Audio anpassen: %1:%2 - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - Import fehlgeschlagen - - - - Nothing to import - Nichts zu importieren - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - Importieren... - - - - Import footage... - Video-/Bildmaterial - Material importieren... - - - - Failed to import footage - Material konnte nicht importiert werden - - - - Failed to find active Project panel - Es konnte kein aktives Projekt-Panel gefunden werden - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - Es konnte kein neuer Ordner erstellt werden - - - - - Failed to find active project - Es konnte kein aktives Projekt gefunden werden - - - - New Folder - Neuer Ordner - - - - Created New Folder - - - - - Failed to create new sequence - Es konnte keine neue Sequenz erstellt werden - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - Mögliche Bildsequenz erkannt - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - Die Datei '%1' scheint Teil einer Bildsequenz zu sein. Soll sie als solche importiert werden? - - - - You must specify a project file to export - Zum Export muss eine Projektdatei angegeben werden - - - - Specified project does not exist - Das angegebene Projekt gibt es nicht - - - - Failed to open startup file - Die Start-Datei konnte nicht geöffnet werden - - - - The project "%1" doesn't exist. A new project will be started instead. - Das Projekt "%1" gibt es nicht. Ein ein neues Projekt wird stattdessen begonnen. - - - - - Missing OpenTimelineIO Libraries - OpenTimelineIO-Anwendungsbibliotheken fehlen - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - Dieser Build wurde ohne OpenTimeLineIO-Unterstützung erstellt, deshalb können keine OpenTimelineIO-Dateien geöffnet werden. - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Renamed %1 Node(s) - - - - Save Project - Projekt speichern - - - - - Error - Fehler - - - - This Sequence is empty. There is nothing to export. - Diese Sequenz ist leer. Es gibt nichts zu exportieren. - - - - No valid sequence detected. + +< translation > Material +konnte +nicht +importiert +werden < /translation> +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation > Es +konnte +kein +aktives +Projekt - Panel +gefunden +werden < /translation> +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation > Es +konnte +kein +neuer +Ordner +erstellt +werden < /translation> +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation > Es +konnte +kein +aktives +Projekt +gefunden +werden < /translation> +< /message> +< message > + + New +Folder < /source> +< translation > Neuer +Ordner < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation > Es +konnte +keine +neue +Sequenz +erstellt +werden < /translation> +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation > Mögliche +Bildsequenz +erkannt < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - Keine gültige Sequenz erkannt. +as +such ? + < translation > Die Datei & apos; +% +1 & apos; +scheint +Teil +einer +Bildsequenz +zu +sein.Soll +sie +als +solche +importiert +werden ? +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation > Zum +Export +muss +eine +Projektdatei +angegeben +werden < /translation> +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation > Das +angegebene +Projekt +gibt +es +nicht < /translation> +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation > Die +Start - Datei +konnte +nicht +geöffnet +werden < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation > Das +Projekt & quot; +% +1 & quot; +gibt +es +nicht.Ein +ein +neues +Projekt +wird +stattdessen +begonnen. < /translation> +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation > OpenTimelineIO - Anwendungsbibliotheken +fehlen < /translation> +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation > Dieser +Build +wurde +ohne +OpenTimeLineIO - Unterstützung +erstellt, deshalb +können +keine +OpenTimelineIO - Dateien +geöffnet +werden. < /translation> +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > + < /message> + < message > + Save +Project < /source> +< translation +type = "vanished" > Projekt +speichern < /translation> +< /message> +< message > + + +Error < /source> +< translation > Fehler < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation > Diese +Sequenz +ist +leer.Es +gibt +nichts +zu +exportieren. < /translation> +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation > Keine +gültige +Sequenz +erkannt.Es +sollte +sichergestellt +werden, dass +eine +Sequenz +geladen +und +mit +einer +Vorschau - Node +verknüpft +ist. < /translation> +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation > Fehler +bei +der +automatischen +Wiederherstellung < /translation> +< /message> +< message > +Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Olive +may +not +have +permission +to +this +directory. < /source> +< translation +type = "vanished" > Die +Datei +für +automatische +Wiederherstellung +konnte +nicht in & quot; +% +1 & quot; +gespeichert +werden.Olive +hat +möglicherweise +keine +Berechtigung +für +dieses +Verzeichnis. < /translation> +< /message> +< message > +Olive +Project < /source> +< translation +type = "vanished" > Olive - Projekt < /translation> +< /message> +< message > + + OpenTimelineIO < /source> + < translation > OpenTimelineIO < /translation> + < /message> + < message > + The +following +projects +had +unsaved +changes +when +Olive +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "vanished" > In +den +folgenden +Projekten +gab +es +nicht +gespeicherte +Änderungen, als +Olive +plötzlich +beendet +wurde.Sollen +sie +wiederhergestellt +werden ? +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translatorcomment > have +to +be = müssen < /translatorcomment> + < translation > Automatische +Sicherungen +wurden +gefunden, aber +der +zugehörige +Index +konnte +nicht +geladen +werden.Die +Dateien +müssen +manuell +geöffnet +werden.Die +wiederherstellbaren +Projektdateien +sind +verfügbar +unter: % +1 < /translation> +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation > Die +folgenden +Projektversionen +wurden +automatisch +gespeichert: +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Es sollte sichergestellt werden, dass eine Sequenz geladen und mit einer Vorschau-Node verknüpft ist. - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - Fehler bei der automatischen Wiederherstellung - - - Failed to save auto-recovery to "%1". Olive may not have permission to this directory. - Die Datei für automatische Wiederherstellung konnte nicht in "%1" gespeichert werden. Olive hat möglicherweise keine Berechtigung für dieses Verzeichnis. - - - Olive Project - Olive-Projekt - - - - OpenTimelineIO - OpenTimelineIO - - - The following projects had unsaved changes when Olive forcefully quit. Would you like to load them? - In den folgenden Projekten gab es nicht gespeicherte Änderungen, als Olive plötzlich beendet wurde. Sollen sie wiederhergestellt werden? - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > Projekt +speichern +unter < /translation> +< /message> +< message > + + Load +Project < /source> +< translation > Projekt +laden < /translation> +< /message> +< message > + + Label +Node < /source> +< translation > Node +beschriften < /translation> +< /message> +< message > + + Set +node +label < /source> +< translation > Den +Text +der +Node +ändern < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > Sequenz % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translatorcomment > cannot +open = kann +nicht +geöffnet +werden < /translatorcomment> +< translation > Zuletzt +geöffnetes +Projekt +kann +nicht +geöffnet +werden < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation > Das Projekt & quot; +% +1 & quot; +existiert +nicht.Soll +es +aus +der +Liste +der +zuletzt +geöffneten +Projekte +entfernt +werden ? +< /message> +< message > + + Unsaved +Changes < /source> +< translation > Nicht +gespeicherte +Änderungen < /translation> +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation > Das Projekt & apos; +% +1 & apos; +hat +nicht +gespeicherte +Änderungen.Sollen +sie +gespeichert +werden ? +< /message> +< message > + + Save < /source> + < translation > Speichern < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > Alles +speichern < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > Nicht +speichern < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translatorcomment > ? + < translation type = "vanished" > Nicht +speichern +für +alle < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation > Die +Sequenz +konnte +nicht in den +Zwischenspeicher +geladen +werden < /translation> +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation > Es +konnte +keine +aktive +Vorschau +mit +dieser +Sequenz +gefunden +werden. < /translation> +< /message> +< message > + + Open +Project < /source> +< translation > Projekt +öffnen < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textur < /translation> +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::CrashHandlerDialog < /name> + < message > + Olive < /source> + < translation +type = "vanished" > Olive < /translation> + < /message> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translatorcomment > Du +oder +Sie ? + < translation type = "vanished" > Leider +ist +Olive +abgestürzt.Bitte +sende +uns +einen +Fehlerbericht, der +dabei +hilft, das +Problem +zu +beheben. < /translation> +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translatorcomment > Du +oder +Sie ? + < translation > Bitte beschreibe +so +genau +wie +möglich, was +du +gemacht +hast.Erkläre, mit +welchen +Schritten +man +den +Absturz +auslösen +kann, sofern +das +geht. < /translation> +< /message> +< message > + + Crash +Report: +< translation > Absturzbericht +: + +< /message> +< message > + + Send +Error +Report < /source> +< translation > Bericht +senden < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > Nicht +senden < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > Der +Absturzbericht +wird +erstellt +... + +< /message> +< message > + + Upload +Failed < /source> +< translation > Hochladen +fehlgeschlagen < /translation> +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -Your recoverable projects are still available at: %1 - have to be = müssen - Automatische Sicherungen wurden gefunden, aber der zugehörige Index konnte nicht geladen werden. Die Dateien müssen manuell geöffnet werden. + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "vanished" > Der +Bericht +konnte +nicht +gesendet +werden.Bitte +versuche +es +später +nocheinmal. < /translation> +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "vanished" > Absturzbeschreibung +fehlt < /translation> +< /message> +< message > +Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "vanished" > Soll +der +Fehlerbericht +wirklich +ohne +Absturzzusammenfassung +gesendet +werden ? +< /message> +< message > + + + Failed +to +send +report < /source> +< translation > Fehler +beim +Senden +des +Berichts < /translation> +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation > Die +für +den +Absturzbericht +notwendigen +Debugging - Symbole +wurden +nicht +gefunden.Das +liegt +an +dem +Paket.Bitte +benachrichtige +die +zuständigen +Paket - Betreuer +deiner +Distribution. < /translation> +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation > Die +Symboldatei +konnte +nicht +geöffnet +werden.Sie +haben +möglicherweise +keine +Zugriffsberechtigung +für +die +Datei. < /translation> +< /message> +< message > + + Confirm +Close < /source> +< translation > Beenden +bestätigen < /translation> +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation > Der Absturzbericht +wird +noch +hochgeladen.Wenn +Sie +jetzt +schließen, wird +möglicherweise +kein +Bericht +gesendet.Sind +Sie +sicher, dass +Sie +den +Bericht +schließen +möchten ? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + +Texture < /source> +< translation > Textur < /translation> +< /message> +< message > + +Left < /source> +< translation > Links < /translation> +< /message> +< message > + +Top < /source> +< translation > Oben < /translation> +< /message> +< message > + +Right < /source> +< translation > Rechts < /translation> +< /message> +< message > + +Bottom < /source> +< translation > Unten < /translation> +< /message> +< message > + +Feather < /source> +< translation > Übergang < /translation> +< /message> +< message > + +Crop < /source> +< translation > Zuschneiden < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation > Das +Bild +zuschneiden. < /translation> +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > Überblendung < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation > Weicher +Übergang +zwischen +zwei +Clips. < /translation> +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > Kurven - Editor < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation > Zum +Anpassen +zoomen < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation > Auf +Auswahl +zoomen < /translation> +< /message> +< message > + + Reset +Zoom < /source> +< translation > Ansicht +zurücksetzten < /translation> +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > Linear < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translatorcomment > war +vorher +einfach +mit & apos; +halten & apos; +übersetzt, das +ist +aber +nicht +so +treffend +... + +< translation > Konstant < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Eingang < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Grün < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Blau < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > Verfahren < /translation> +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation > Farbübergang < /translation> +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation > Vom +einen +Clip +mit +einer +Zwischenfarbe in den +nächsten +übergehen. < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Farbe < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translatorcomment > Puffer +kann +meiner +Meinung +nach +Cache +bleiben, sollte +eingedeutscht +sein < /translatorcomment> +< translation > Puffer +: % +1 < /translation> +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation > Cache - Einstellungen < /translation> +< /message> +< message > + + Maximum +Disk +Cache: +< translation > Maximale +Puffergröße: +< /message> +< message > + + % 1 +GB < /source> +< translation > % 1 +GB < /translation> +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation > Cache +leeren < /translation> +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation > Cache +beim +Schließen +automatisch +leeren < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translatorcomment > Mögliche Pronomen +: +unter / bei / in +< translation > Soll +der +Cache & apos; +% +1 & apos; +wirklich +geleert +werden ? +< /message> +< message > + + Disk +Cache +Cleared < /source> +< translation > Cache +geleert < /translation> +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation > Der +Cache +konnte +nicht +vollständig +geleert +werden.Möglicherweise +müssen +Sie +die +Cache - Dateien +manuell +löschen. < /translation> +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation > Cache +nur +teilweise +geleert < /translation> +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation > Puffer - Fehler < /translation> +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation > Der +individuelle +Speicherort +für +den +Puffer +konnte +nicht +festgelegt +werden.Als +Ersatz +wird +das +Standardverzeichnis +verwendet. < /translation> +< /message> +< message > + + Disk +Cache < /source> +< translation > Puffer < /translation> +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation > Das Verzeichnis +für +den +Puffer +soll +geändert +werden.Dadurch +würde +aber +der +aktuelle +Inhalt +verlorengehen.Ist +das +okay ? +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation > Der +Festplatte - Puffer +konnte +nicht +am +Ort & quot; +% +1 & quot; +initialisiert +werden.Versuche +einen +anderen +Ordner. < /translation> +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Eingang < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > Display < /translation> +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Ansicht < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Richtung < /translation> +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textur < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Farbe < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Deckkraft < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > Verstrichen +: % +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > Ausstehend +: % +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + +Advanced < /source> +< translation > Erweitert < /translation> +< /message> +< message > + +Pixel < /source> +< translation > Pixel < /translation> +< /message> +< message > + + Pixel +Format: +< translation > Pixel - Format +: + +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Performance < /source> +< translation > Leistung < /translation> +< /message> +< message > + + Threads +: + +< translation > Threads +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > Codec +: + +< /message> +< message > + + Sample +Rate: +< translation > Abtastrate +: + +< /message> +< message > + + Channel +Layout: +< translation > Kanal - Anordnung +: + +< /message> +< message > + + Format +: + +< translation > Dateiformat +: + +< /message> +< message > + + Bit +Rate: +< translation > Bitrate +: + +< /message> +< message > + + % 1 +kbps < /source> +< translation > % 1 +kbps < /translation> +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + H +.264 < /source> +< translation > H +.264 < /translation> +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > H +.265 < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +ProRes < /source> +< translation > ProRes < /translation> +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +MP2 < /source> +< translation > MP2 < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +AAC < /source> +< translation > AAC < /translation> +< /message> +< message > + +PCM(Uncompressed) < /source> +< translation > PCM(Unkomprimiert) < /translation> +< /message> +< message > + +FLAC < /source> +< translation > FLAC < /translation> +< /message> +< message > + +Opus < /source> +< translation > Opus < /translation> +< /message> +< message > + +Vorbis < /source> +< translation > Vorbis < /translation> +< /message> +< message > + +VP9 < /source> +< translation > VP9 < /translation> +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Unbekannt < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > Dateiname +: + +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation > Dateiname +des +Ergebnisses +auswählen < /translation> +< /message> +< message > + + Preset +: + +< translation > Vorgabe +: + +< /message> +< message > +Same +As +Source - High +Quality < /source> +< translation +type = "vanished" > Quellformat +übernehmen - Hohe +Qualität < /translation> +< /message> +< message > +Same +As +Source - Medium +Quality < /source> +< translation +type = "vanished" > Quellformat +übernehmen - Mittlere +Qualität < /translation> +< /message> +< message > +Same +As +Source - Low +Quality < /source> +< translation +type = "vanished" > Quellformat +übernehmen - Geringe +Qualität < /translation> +< /message> +< message > + + Range +: + +< translation > Bereich +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation > Komplette +Sequenz < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > Anfangs - bis +Endpunkt < /translation> +< /message> +< message > + + Format +: + +< translation > Format +: + +< /message> +< message > + + Export +Video < /source> +< translation > Video +exportieren < /translation> +< /message> +< message > + + Export +Audio < /source> +< translation > Audio +exportieren < /translation> +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Video < /translation> +< /message> +< message > + +Audio < /source> +< translation > Audio < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > Exportieren < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Abbrechen < /translation> +< /message> +< message > + +Preview < /source> +< translation > Vorschau < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation > Unzulässige +Parameter < /translation> +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Standard < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > + < /message> + < message > + Both +video +and +audio +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "vanished" > Sowohl +Video - als +auch +Audio - Export +sind +deaktiviert.Es +gibt +nichts, was +exportiert +werden +könnte. < /translation> +< /message> +< message > + + + + Invalid +filename < /source> +< translation > Unzulässiger +Dateiname < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation > Der Dateiname +muss +die +Endung & quot; +% +1 & quot; +haben.Soll +sie +automatisch +angefügt +werden ? +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation > Ausgabeverzeichnis +konnte +nicht +erstellt +werden < /translation> +< /message> +< message > +The +intended +output +directory +doesn & apos; +t +exist +and +Olive +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "vanished" > Das +vorgesehene +Ausgabeverzeichnis +gibt +es +nicht +und +Olive +konnte +es +auch +nicht +erstellen.Bitte +wähle +einen +anderen +Dateinamen. < /translation> +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation > Es +ist +eingestellt, dass +eine +Sequenz +von +Einzelbildern +exportiert +werden +soll, aber +der +Dateiname +enthält +keinen +Platzhalter +für +die +Nummerierung.Das +Angabe - Format +dafür +ist [ +#####], +die +Anzahl +der +# +steht +für +die +zu +verwendende +Anzahl +an +Ziffern. < /translation> +< /message> +< message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation > +Der +Dateiname +enthält +nicht +genügend +Ziffern +für +die +Anzahl +der +zu +speichernden +Einzelbilder.Dieser +Exportvorgang +benötigt % 1 +für % n +Bild. < /numerusform> +< numerusform > Der +Dateiname +enthält +nicht +genügend +Ziffern +für +die +Anzahl +der +zu +speichernden +Einzelbilder.Dieser +Exportvorgang +benötigt % 1 +für % n +Bilder. < /numerusform> +< /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation > Überschreiben +bestätigen < /translation> +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation > Die Datei & quot; +% +1 & quot; +gibt +es +schon.Soll +sie +überschrieben +werden ? +< /message> +< message > + + Invalid +Parameters < /source> +< translation > Unzulässige +Parameter < /translation> +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation > Breite +und +Höhe +müssen +Vielfache +von +2 +sein. < /translation> +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + Matroska +Video < /source> +< translation > Matroska +Video < /translation> +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > MPEG - 4 +Video < /translation> +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +QuickTime < /source> +< translation > QuickTime < /translation> +< /message> +< message > + + Wave +Audio < /source> +< translation > Wave +Audio < /translation> +< /message> +< message > + +AIFF < /source> +< translation > AIFF < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +FLAC < /source> +< translation > FLAC < /translation> +< /message> +< message > + +Ogg < /source> +< translation > Ogg < /translation> +< /message> +< message > + +WebM < /source> +< translation > WebM < /translation> +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Unbekannt < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > Untertitel < /translation> +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Name +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Codec +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation > & quot; +% +1 & quot; +wird +exportiert < /translation> +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation > Der +Encoder +konnte +nicht +erstellt +werden < /translation> +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +open +file < /source> +< translation +type = "vanished" > Die +Datei +konnte +nicht +geöffnet +werden < /translation> +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation > & quot; +% +1 & quot; +konnte +nicht +überschrieben +werden.Das +Ergebnis +wurde +stattdessen +als & quot; +% +2 & quot; +gespeichert. < /translation> +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > +Basic < /source> +< translation +type = "vanished" > Allgemeines < /translation> +< /message> +< message > + + General < /source> + < translation +type = "unfinished" > Allgemein < /translation> +< /message> +< message > + + Width +: + +< translation > Breite +: + +< /message> +< message > + + Height +: + +< translation > Höhe +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > Seitenverhältnis +beibehalten: +< /message> +< message > + + Scaling +Method: +< translation > Skalierungsverfahren +: + +< /message> +< message > + +Fit < /source> +< translation > Einpassen < /translation> +< /message> +< message > + +Stretch < /source> +< translation > Dehnen < /translation> +< /message> +< message > + +Crop < /source> +< translation > Zuschneiden < /translation> +< /message> +< message > + + Frame +Rate: +< translation > Bildfrequenz +: + +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > Seitenverhältnis +: + +< /message> +< message > + + Interlacing +: + +< translation > Interlacing +: + +< /message> +< message > + + Quality +: + +< translation > Qualität +: + +< /message> +< message > + +Codec < /source> +< translation > Codec < /translation> +< /message> +< message > + + Codec +: + +< translation > Codec +: + +< /message> +< message > + +Advanced < /source> +< translation > Erweitert < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation > Der +Ausgabe - Kontext +konnte +nicht +zugewiesen +werden < /translation> +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation > Für +diesen +Puffer +konnte +kein +passendes +Pixel - Format +gefunden +werden < /translation> +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation > Der +IO - Kontext +konnte +nicht +geöffnet +werden < /translation> +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation > Die +Format - Kopfzeile +konnte +nicht +geschrieben +werden < /translation> +< /message> +< message > +Failed +to +create +AVFrame +buffer < /source> +< translation +type = "vanished" > Der +AVFrame - Puffer +konnte +nicht +erstellt +werden < /translation> +< /message> +< message > +Failed +to +scale +frame < /source> +< translation +type = "vanished" > Das +Bild +konnte +nicht +skaliert +werden < /translation> +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation > Audio - Resampling +fehlgeschlagen < /translation> +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation > % 1 +: % +2 % 3 < /translation> +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation > Das +Bild +konnte +nicht +an +den +Encoder +gesendet +werden < /translation> +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation > Das +dekodierte +Paket +konnte +nicht +empfangen +werden < /translation> +< /message> +< message > +Cannot +initialize +a +stream +that +is +not +a +video +or +audio +type < /source> +< translation +type = "vanished" > Ein +Stream, der +weder +für +Audio +noch +für +Video +ist, kann +nicht +initialisiert +werden < /translation> +< /message> +< message > +Unknown +internal +codec < /source> +< translation +type = "vanished" > Unbekannter +interner +Codec < /translation> +< /message> +< message > +Failed +to +find +codec +for % +1 < /source> +< translation +type = "vanished" > Der +Codec +für % 1 +konnte +nicht +gefunden +werden < /translation> +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation > Unerwarteter Codec - Typ % 1 +für +Codec % 2 +abgerufen < /translation> +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation > Der +AVStream +konnte +nicht +zugewiesen +werden < /translation> +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation > Der +AVCodecContext +konnte +nicht +zugewiesen +werden < /translation> +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation > Encoder +konnte +nicht +geöffnet +werden < /translation> +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation > Die +Codec - Parameter +konnten +nicht in den +Stream +kopiert +werden < /translation> +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation > Der +Resampling - Kontext +konnte +nicht +erstellt +werden < /translation> +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation > Das +Audio - Frame +konnte +nicht +erstellt +werden < /translation> +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation > Verzeichnis +öffnen < /translation> +< /message> +< message > + + Open +File < /source> +< translation > Datei +öffnen < /translation> +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Eingang < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > Horizontal < /translation> +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > Vertikal < /translation> +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > % 1 +dB < /translation> +< /message> +< message > + + % 1 % +< translation > % 1 % +< /message> +< message > + + ∞ +< translation >∞ +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + +Folder < /source> +< translation > Ordner < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translatorcomment > / gruppieren < /translatorcomment> +< translation > Einzelne +Objekte in Gruppen +einteilen. < /translation> +< /message> +< message > + +Children < /source> +< translation > Dateien < /translation> +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation > Dateiname < /translation> + < /message> + < message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "vanished" > % 1 +Hz < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation > % 1 +: +Bild - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation > % 1 +: +Video - % 2 +x % 3 < /translation> +< /message> +< message > + % 1 +: +Audio - % 2 +Channel(s), +% +3 +Hz < /source> +< translation +type = "vanished" > % 1 +: +Audio - % 2 +Kanäle, +% +3 +Hz < /translation> +< /message> +< message > +Loop +Mode < /source> +< translation +type = "vanished" > Wiederholungs - Modus < /translation> + < /message> + < message > + None < /source> + < translation +type = "vanished" > Keine +Wiederholung < /translation> +< /message> +< message > +Loop < /source> +< translation +type = "vanished" > Wiederholen < /translation> + < /message> + < message > + Clamp < /source> + < translation +type = "vanished" > Feststellen < /translation> + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation > + % 1 +: +Audio - % n +Kanal, +% +2 +Hz < /numerusform> +< numerusform > % 1 +: +Audio - % n +Kanäle, +% +2 +Hz < /numerusform> +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Video < /translation> +< /message> +< message > + +Audio < /source> +< translation > Audio < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > Untertitel < /translation> +< /message> +< message > + +Invalid < /source> +< translation > Ungültig < /translation> +< /message> +< message > +Data < /source> +< translatorcomment > ? + < translation type = "vanished" > Daten < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Unbekannt < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation > Dateiname +: % +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "vanished" > Dieses +Material +ist +nicht +verwendbar < /translation> +< /message> +< message > +Footage < /source> +< translation +type = "vanished" > Material < /translation> +< /message> +< message > + +Media < /source> +< translation > Medien < /translation> +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation > Video -, Audio - oder +Bildmaterial +importieren +und +arrangieren. < /translation> +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Name +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Unbekannt < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + +Footage < /source> +< translation > Material < /translation> +< /message> +< message > + +Filename < /source> +< translation > Dateiname < /translation> +< /message> +< message > + +Actions < /source> +< translation > Aktionen < /translation> +< /message> +< message > + +Browse < /source> +< translation > Auswählen < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation > Material +neu +zuordnen < /translation> +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation > & quot; +% +1 & quot; +neu +zuordnen < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "vanished" > Alle +Dateien < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translatorcomment > Die +Übersetzung +von +Footage +ist +inkonsistent, das +ist +aber +wirklich +schwer +zu +übersetzten < /translatorcomment> +< translation > Quellvorschau < /translation> +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation > Individuelle +Bildrate < /translation> +< /message> +< message > + + Enter +custom +frame +rate: +< translation > Individuelle +Bildrate +eingeben: +< /message> +< message > + + Invalid +Input < /source> +< translation > Ungültige +Eingabe < /translation> +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation > & quot; +% +1 & quot; +konnte +nicht +als +Bildrate +interpretiert +werden. < /translation> +< /message> +< message > + + Custom +... + +< translation > Individuell +... + +< /message> +< message > + + Custom( % 1 +) + +< translation > Individuell( % 1 +) + +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + +Gap < /source> +< translation > Zwischenraum < /translation> +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation > Eine +zeitgesteuerte +Node, die +einen +leeren +Bereich +repräsentiert. < /translation> +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > Hintergrund < /translation> +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > Ziel - Bitrate(Mbps) +: + +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > Maximale +Bitrate(Mbps) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Zwei +Durchgänge < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > Ziel - Dateigröße(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Zwei +Durchgänge < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation > Kompressions - Verfahren +: + +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation > Konstante +Bitrate < /translation> +< /message> +< message > + + Target +Bit +Rate < /source> +< translation > Ziel - Bitrate < /translation> +< /message> +< message > + + Target +File +Size < /source> +< translation > Ziel - Dateigröße < /translation> +< /message> +< /context> +< context > +olive::HandMovableView < /name> +< message > +Scroll +Zooms +By +Default < /source> +< translation +type = "vanished" > Mausrad +zoomt +als +Standard < /translation> +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation > Bildsequenz +: + +< /message> +< message > + + Frame +to +Export: +< translation > Zu +exportierendes +Bild: +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + +None(Progressive) < /source> +< translation > deaktiviert(progressiv) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation > Oberstes +Feld +zuerst < /translation> +< /message> +< message > + + Bottom - Field +First < /source> +< translation > Unterstes +Feld +zuerst < /translation> +< /message> +< /context> +< context > +olive::Item < /name> +< message > +Folder < /source> +< translation +type = "vanished" > Ordner < /translation> +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation > Schlüsselbild - Eigenschaften < /translation> +< /message> +< message > + + In +: + +< translation > Anfangspunkt +: + +< /message> +< message > + + Out +: + +< translation > Endpunkt +: + +< /message> +< message > + +Linear < /source> +< translation > Linear < /translation> +< /message> +< message > + +Hold < /source> +< translation > Konstant < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bezier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linear < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Konstant < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > & Eigenschaften < /translation> +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > Linear < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > Bezier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > Konstant < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "vanished" > & Eigenschaften < /translation> + < /message> + < /context> + < context > + olive::LoadOTIOTask < /name> + < message > + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; + +< translation +type = "vanished" > Aus +der +Datei & quot; +% +1 & quot; +konnte +keine +OpenTimelineIO - Sequenz +geladen +werden < /translation> +< /message> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -Die wiederherstellbaren Projektdateien sind verfügbar unter: %1 - - - - The following project versions have been auto-saved: - Die folgenden Projektversionen wurden automatisch gespeichert: - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. +OpenTimelineIO +Error: -To remedy this, please do one of the following: - -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - Projekt speichern unter - - - - Load Project - Projekt laden - - - - Label Node - Node beschriften - - - - Set node label - Den Text der Node ändern - - - - Sequence %1 - Sequenz %1 - - - - Cannot open recent project - cannot open = kann nicht geöffnet werden - Zuletzt geöffnetes Projekt kann nicht geöffnet werden - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - Das Projekt "%1" existiert nicht. Soll es aus der Liste der zuletzt geöffneten Projekte entfernt werden? - - - - Unsaved Changes - Nicht gespeicherte Änderungen - - - - The project '%1' has unsaved changes. Would you like to save them? - Das Projekt '%1' hat nicht gespeicherte Änderungen. Sollen sie gespeichert werden? - - - - Save - Speichern - - - Save All - Alles speichern - - - - Don't Save - Nicht speichern - - - Don't Save All - ? - Nicht speichern für alle - - - - Failed to cache sequence - Die Sequenz konnte nicht in den Zwischenspeicher geladen werden - - - - No active viewer found with this sequence. - Es konnte keine aktive Vorschau mit dieser Sequenz gefunden werden. - - - - Open Project - Projekt öffnen - - - - olive::CornerPinDistortNode - - - Texture - Textur - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - Du oder Sie? - Leider ist Olive abgestürzt. Bitte sende uns einen Fehlerbericht, der dabei hilft, das Problem zu beheben. - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - Du oder Sie? - Bitte beschreibe so genau wie möglich, was du gemacht hast. Erkläre, mit welchen Schritten man den Absturz auslösen kann, sofern das geht. - - - - Crash Report: - Absturzbericht: - - - - Send Error Report - Bericht senden - - - - Don't Send - Nicht senden - - - - Waiting for crash report to be generated... - Der Absturzbericht wird erstellt... - - - - Upload Failed - Hochladen fehlgeschlagen - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: - -%1 - - - - - You must write a description to submit this crash report. - - - - Failed to send error report. Please try again later. - Der Bericht konnte nicht gesendet werden. Bitte versuche es später nocheinmal. - - - No Crash Summary - Absturzbeschreibung fehlt - - - Are you sure you want to send an error report with no crash summary? - Soll der Fehlerbericht wirklich ohne Absturzzusammenfassung gesendet werden? - - - - - Failed to send report - Fehler beim Senden des Berichts - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - Die für den Absturzbericht notwendigen Debugging-Symbole wurden nicht gefunden. Das liegt an dem Paket. Bitte benachrichtige die zuständigen Paket-Betreuer deiner Distribution. - - - - Failed to open symbol file. You may not have permission to access it. - Die Symboldatei konnte nicht geöffnet werden. Sie haben möglicherweise keine Zugriffsberechtigung für die Datei. - - - - Confirm Close - Beenden bestätigen - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - Der Absturzbericht wird noch hochgeladen. Wenn Sie jetzt schließen, wird möglicherweise kein Bericht gesendet. Sind Sie sicher, dass Sie den Bericht schließen möchten? - - - - olive::CropDistortNode - - - Texture - Textur - - - - Left - Links - - - - Top - Oben - - - - Right - Rechts - - - - Bottom - Unten - - - - Feather - Übergang - - - - Crop - Zuschneiden - - - - Crop the edges of an image. - Das Bild zuschneiden. - - - - olive::CrossDissolveTransition - - - Cross Dissolve - Überblendung - - - - Smoothly transition between two clips. - Weicher Übergang zwischen zwei Clips. - - - - olive::CurvePanel - - - Curve Editor - Kurven-Editor - - - - olive::CurveView - - - Zoom to Fit - Zum Anpassen zoomen - - - - Zoom to Fit Selected - Auf Auswahl zoomen - - - - Reset Zoom - Ansicht zurücksetzten - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Linear - - - - Bezier - Bezier - - - - Hold - war vorher einfach mit 'halten' übersetzt, das ist aber nicht so treffend... - Konstant - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - Eingang - - - - Key Color - - - - - Green - Grün - - - - Blue - Blau - - - - Method - Verfahren - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - Farbübergang - - - - Transition between clips by dipping to a color. - Vom einen Clip mit einer Zwischenfarbe in den nächsten übergehen. - - - - Color - Farbe - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - Puffer kann meiner Meinung nach Cache bleiben, sollte eingedeutscht sein - Puffer: %1 - - - - Disk Cache Settings - Cache-Einstellungen - - - - Maximum Disk Cache: - Maximale Puffergröße: - - - - %1 GB - %1 GB - - - - - - Clear Disk Cache - Cache leeren - - - - Automatically clear disk cache on close - Cache beim Schließen automatisch leeren - - - - Are you sure you want to clear the disk cache in '%1'? - Mögliche Pronomen: unter/bei/in - Soll der Cache '%1' wirklich geleert werden? - - - - Disk Cache Cleared - Cache geleert - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - Der Cache konnte nicht vollständig geleert werden. Möglicherweise müssen Sie die Cache-Dateien manuell löschen. - - - - Disk Cache Partially Cleared - Cache nur teilweise geleert - - - - olive::DiskManager - - - - Disk Cache Error - Puffer-Fehler - - - - Unable to set custom application disk cache. Using default instead. - Der individuelle Speicherort für den Puffer konnte nicht festgelegt werden. Als Ersatz wird das Standardverzeichnis verwendet. - - - - Disk Cache - Puffer - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - Das Verzeichnis für den Puffer soll geändert werden. Dadurch würde aber der aktuelle Inhalt verlorengehen. Ist das okay? - - - - Failed to open disk cache at "%1". Try a different folder. - Der Festplatte-Puffer konnte nicht am Ort "%1" initialisiert werden. Versuche einen anderen Ordner. - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - Eingang - - - - Display - Display - - - - View - Ansicht - - - - Direction - Richtung - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - Textur - - - - Color - Farbe - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Deckkraft - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - Verstrichen: %1 - - - - Remaining: %1 - Ausstehend: %1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Erweitert - - - - Pixel - Pixel - - - - Pixel Format: - Pixel-Format: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - Leistung - - - - Threads: - Threads: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Codec: - - - - Sample Rate: - Abtastrate: - - - - Channel Layout: - Kanal-Anordnung: - - - - Format: - Dateiformat: - - - - Bit Rate: - Bitrate: - - - - %1 kbps - %1 kbps - - - - olive::ExportCodec - - - DNxHD - DNxHD - - - - H.264 - H.264 - - - - H.264 RGB - - - - - H.265 - H.265 - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - ProRes - ProRes - - - - Cineform - - - - - TIFF - TIFF - - - - MP2 - MP2 - - - - MP3 - MP3 - - - - AAC - AAC - - - - PCM (Uncompressed) - PCM (Unkomprimiert) - - - - FLAC - FLAC - - - - Opus - Opus - - - - Vorbis - Vorbis - - - - VP9 - VP9 - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - Unbekannt - - - - olive::ExportDialog - - - Filename: - Dateiname: - - - - Browse for exported file filename - Dateiname des Ergebnisses auswählen - - - - Preset: - Vorgabe: - - - Same As Source - High Quality - Quellformat übernehmen - Hohe Qualität - - - Same As Source - Medium Quality - Quellformat übernehmen - Mittlere Qualität - - - Same As Source - Low Quality - Quellformat übernehmen - Geringe Qualität - - - - Range: - Bereich: - - - - Entire Sequence - Komplette Sequenz - - - - In to Out - Anfangs- bis Endpunkt - - - - Format: - Format: - - - - Export Video - Video exportieren - - - - Export Audio - Audio exportieren - - - - Export Subtitles - - - - - Video - Video - - - - Audio - Audio - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Exportieren - - - - Cancel - Abbrechen - - - - Preview - Vorschau - - - - Invalid parameters - Unzulässige Parameter - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Default - Standard - - - - Last Used - - - - Both video and audio are disabled. There's nothing to export. - Sowohl Video- als auch Audio-Export sind deaktiviert. Es gibt nichts, was exportiert werden könnte. - - - - - - Invalid filename - Unzulässiger Dateiname - - - - The filename must contain the extension "%1". Would you like to append it automatically? - Der Dateiname muss die Endung "%1" haben. Soll sie automatisch angefügt werden? - - - - Failed to create output directory - Ausgabeverzeichnis konnte nicht erstellt werden - - - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - Das vorgesehene Ausgabeverzeichnis gibt es nicht und Olive konnte es auch nicht erstellen. Bitte wähle einen anderen Dateinamen. - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - Es ist eingestellt, dass eine Sequenz von Einzelbildern exportiert werden soll, aber der Dateiname enthält keinen Platzhalter für die Nummerierung. Das Angabe-Format dafür ist [#####], die Anzahl der # steht für die zu verwendende Anzahl an Ziffern. - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - Der Dateiname enthält nicht genügend Ziffern für die Anzahl der zu speichernden Einzelbilder. Dieser Exportvorgang benötigt %1 für %n Bild. - Der Dateiname enthält nicht genügend Ziffern für die Anzahl der zu speichernden Einzelbilder. Dieser Exportvorgang benötigt %1 für %n Bilder. - - - - - Confirm Overwrite - Überschreiben bestätigen - - - - The file "%1" already exists. Do you want to overwrite it? - Die Datei "%1" gibt es schon. Soll sie überschrieben werden? - - - - Invalid Parameters - Unzulässige Parameter - - - - Width and height must be multiples of 2. - Breite und Höhe müssen Vielfache von 2 sein. - - - - olive::ExportFormat - - - DNxHD - DNxHD - - - - Matroska Video - Matroska Video - - - - MPEG-4 Video - MPEG-4 Video - - - - MPEG-4 Audio - - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - TIFF - TIFF - - - - QuickTime - QuickTime - - - - Wave Audio - Wave Audio - - - - AIFF - AIFF - - - - MP3 - MP3 - - - - FLAC - FLAC - - - - Ogg - Ogg - - - - WebM - WebM - - - - SubRip SRT - - - - - Unknown - Unbekannt - - - - olive::ExportFormatComboBox - - - Video - Video - - - - Audio - Audio - - - - Subtitle - Untertitel - - - - olive::ExportSavePresetDialog - - - Name: - Name: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Codec: - - - - olive::ExportTask - - - Exporting "%1" - "%1" wird exportiert - - - - Failed to create encoder - Der Encoder konnte nicht erstellt werden - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - Failed to open file - Die Datei konnte nicht geöffnet werden - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - "%1" konnte nicht überschrieben werden. Das Ergebnis wurde stattdessen als "%2" gespeichert. - - - - olive::ExportVideoTab - - Basic - Allgemeines - - - - General - Allgemein - - - - Width: - Breite: - - - - Height: - Höhe: - - - - Maintain Aspect Ratio: - Seitenverhältnis beibehalten: - - - - Scaling Method: - Skalierungsverfahren: - - - - Fit - Einpassen - - - - Stretch - Dehnen - - - - Crop - Zuschneiden - - - - Frame Rate: - Bildfrequenz: - - - - Pixel Aspect Ratio: - Seitenverhältnis: - - - - Interlacing: - Interlacing: - - - - Quality: - Qualität: - - - - Codec - Codec - - - - Codec: - Codec: - - - - Advanced - Erweitert - - - - olive::FFmpegEncoder - - - Failed to allocate output context - Der Ausgabe-Kontext konnte nicht zugewiesen werden - - - - Failed to find suitable pixel format for this buffer - Für diesen Puffer konnte kein passendes Pixel-Format gefunden werden - - - - Failed to configure filter graph - - - - - Failed to open IO context - Der IO-Kontext konnte nicht geöffnet werden - - - - Failed to write format header - Die Format-Kopfzeile konnte nicht geschrieben werden - - - Failed to create AVFrame buffer - Der AVFrame-Puffer konnte nicht erstellt werden - - - Failed to scale frame - Das Bild konnte nicht skaliert werden - - - - Failed to resample audio - Audio-Resampling fehlgeschlagen - - - - %1: %2 %3 - %1: %2 %3 - - - - Failed to send frame to encoder - Das Bild konnte nicht an den Encoder gesendet werden - - - - Failed to receive packet from decoder - Das dekodierte Paket konnte nicht empfangen werden - - - Cannot initialize a stream that is not a video or audio type - Ein Stream, der weder für Audio noch für Video ist, kann nicht initialisiert werden - - - Unknown internal codec - Unbekannter interner Codec - - - Failed to find codec for %1 - Der Codec für %1 konnte nicht gefunden werden - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - - - - Failed to write interleaved packet - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - Unerwarteter Codec-Typ %1 für Codec %2 abgerufen - - - - Failed to allocate AVStream - Der AVStream konnte nicht zugewiesen werden - - - - Failed to allocate AVCodecContext - Der AVCodecContext konnte nicht zugewiesen werden - - - - Failed to open encoder - Encoder konnte nicht geöffnet werden - - - - Failed to copy codec parameters to stream - Die Codec-Parameter konnten nicht in den Stream kopiert werden - - - - Failed to create resampling context - Der Resampling-Kontext konnte nicht erstellt werden - - - - Failed to create audio frame - Das Audio-Frame konnte nicht erstellt werden - - - - olive::FileField - - - Open Directory - Verzeichnis öffnen - - - - Open File - Datei öffnen - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - Eingang - - - - Horizontal - Horizontal - - - - Vertical - Vertikal - - - - olive::FloatSlider - - - %1 dB - %1 dB - - - - %1% - %1% - - - - ∞ - - - - - olive::Folder - - - Folder - Ordner - - - - Organize several items into a single collection. - /gruppieren - Einzelne Objekte in Gruppen einteilen. - - - - Children - Dateien - - - - olive::Footage - - - Filename - Dateiname - - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - - %1: Image - %2x%3 - %1: Bild - %2x%3 - - - - %1: Video - %2x%3 - %1: Video - %2x%3 - - - %1: Audio - %2 Channel(s), %3Hz - %1: Audio - %2 Kanäle, %3Hz - - - Loop Mode - Wiederholungs-Modus - - - None - Keine Wiederholung - - - Loop - Wiederholen - - - Clamp - Feststellen - - - - %1: Audio - %n Channel(s), %2Hz - - %1: Audio - %n Kanal, %2Hz - %1: Audio - %n Kanäle, %2Hz - - - - - %1: Subtitle - - - - - Video - Video - - - - Audio - Audio - - - - Subtitle - Untertitel - - - - Invalid - Ungültig - - - Data - ? - Daten - - - - Unknown - Unbekannt - - - - Filename: %1 - Dateiname: %1 - - - This footage is not valid for use - Dieses Material ist nicht verwendbar - - - Footage - Material - - - - Media - Medien - - - - Import video, audio, or still image files into the composition. - Video-, Audio- oder Bildmaterial importieren und arrangieren. - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - Name: - - - - Tracks: - - - - - Subtitles - - - - - Unknown - Unbekannt - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - Material - - - - Filename - Dateiname - - - - Actions - Aktionen - - - - Browse - Auswählen - - - - Relink Footage - Material neu zuordnen - - - - Relink "%1" - "%1" neu zuordnen - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Alle Dateien - - - - olive::FootageViewerPanel - - - Footage Viewer - Die Übersetzung von Footage ist inkonsistent, das ist aber wirklich schwer zu übersetzten - Quellvorschau - - - - olive::FrameRateComboBox - - - Custom Frame Rate - Individuelle Bildrate - - - - Enter custom frame rate: - Individuelle Bildrate eingeben: - - - - Invalid Input - Ungültige Eingabe - - - - Failed to convert "%1" to a frame rate. - "%1" konnte nicht als Bildrate interpretiert werden. - - - - Custom... - Individuell... - - - - Custom (%1) - Individuell (%1) - - - - olive::GapBlock - - - Gap - Zwischenraum - - - - A time-based node that represents an empty space. - Eine zeitgesteuerte Node, die einen leeren Bereich repräsentiert. - - - - olive::GeneratorWithMerge - - - Base - Hintergrund - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - Ziel-Bitrate (Mbps): - - - - Maximum Bit Rate (Mbps): - Maximale Bitrate (Mbps): - - - - Two-Pass - Zwei Durchgänge - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Ziel-Dateigröße (MB): - - - - Two-Pass - Zwei Durchgänge - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - Kompressions-Verfahren: - - - - Constant Rate Factor - Konstante Bitrate - - - - Target Bit Rate - Ziel-Bitrate - - - - Target File Size - Ziel-Dateigröße - - - - olive::HandMovableView - - Scroll Zooms By Default - Mausrad zoomt als Standard - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - Bildsequenz: - - - - Frame to Export: - Zu exportierendes Bild: - - - - olive::InterlacedComboBox - - - None (Progressive) - deaktiviert (progressiv) - - - - Top-Field First - Oberstes Feld zuerst - - - - Bottom-Field First - Unterstes Feld zuerst - - - - olive::Item - - Folder - Ordner - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - Schlüsselbild-Eigenschaften - - - - In: - Anfangspunkt: - - - - Out: - Endpunkt: - - - - Linear - Linear - - - - Hold - Konstant - - - - Bezier - Bezier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Linear - - - - Bezier - Bezier - - - - Hold - Konstant - - - - P&roperties - &Eigenschaften - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Linear - - - Bezier - Bezier - - - Hold - Konstant - - - P&roperties - &Eigenschaften - - - - olive::LoadOTIOTask - - Failed to load OpenTimelineIO from file "%1" - Aus der Datei "%1" konnte keine OpenTimelineIO-Sequenz geladen werden - - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - Stamm klingt besser als Wurzel, Root könnte man theoretisch auch verwenden - Unbekanntes OpenTimelineIO-Stammelement - - - - Sequence %1 - Sequenz %1 - - - - Failed to load clip - Der Clip konnte nicht geladen werden - - - - olive::MainMenu - - - &Save '%1' - '%1' &speichern - - - - Save '%1' &As - '%1' speichern a&ls - - - Close '%1' - '%1' schließen - - - Close All Except '%1' - Alle schließen außer '%1' - - - - &Save Project - &Projekt speichern - - - - Save Project &As - Projekt speichern &unter - - - Close Project - Projekt schließen - - - Close All Except Current Project - Alles außer das aktuelle Projekt schließen - - - - (None) - (Nichts) - - - - &File - &Datei - - - - &New - &Neu - - - - &Open Project - Projekt &öffnen - - - - Open &Recent - &Zuletzt geöffnet - - - - &Clear Recent List - Zuletzt geöffnet &leeren - - - Sa&ve All Projects - &Alle Projekte speichern - - - - &Import... - &Importieren... - - - - &Export - E&xportieren - - - - &Media... - als &Video... - - - Close All Projects - Alle Projekte schließen - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - W - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - T - - - - = - - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - Links - - - - Space - - - - - Shift+Space - - - - - Right - Rechts - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - B - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translatorcomment > Stamm +klingt +besser +als +Wurzel, Root +könnte +man +theoretisch +auch +verwenden < /translatorcomment> +< translation > Unbekanntes +OpenTimelineIO - Stammelement < /translation> +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > Sequenz % 1 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation > Der +Clip +konnte +nicht +geladen +werden < /translation> +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation > & apos; +% +1 & apos; +& +speichern < /translation> +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > & apos; +% +1 & apos; +speichern +a & ls < /translation> +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > & apos; +% +1 & apos; +schließen < /translation> +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "vanished" > Alle +schließen +außer & apos; +% +1 & apos; + +< /message> +< message > + + & Save +Project < /source> +< translation > & Projekt +speichern < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation > Projekt +speichern & unter < /translation> +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > Projekt +schließen < /translation> +< /message> +< message > +Close +All +Except +Current +Project < /source> +< translation +type = "vanished" > Alles +außer +das +aktuelle +Projekt +schließen < /translation> +< /message> +< message > + +(None) < /source> +< translation > (Nichts) < /translation> +< /message> +< message > + + & File < /source> +< translation > & Datei < /translation> +< /message> +< message > + + & New < /source> +< translation > & Neu < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation > Projekt & öffnen < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation > & Zuletzt +geöffnet < /translation> +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > Zuletzt +geöffnet & leeren < /translation> +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > & Alle +Projekte +speichern < /translation> +< /message> +< message > + + & Import +... + +< translation > & Importieren +... + +< /message> +< message > + + & Export < /source> +< translation > E & xportieren < /translation> +< /message> +< message > + + & Media +... + +< translation > als & Video +... + +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > Alle +Projekte +schließen < /translation> +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > W < /translation> +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > T < /translation> +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > - +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > Links < /translation> +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > Rechts < /translation> +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > B < /translation> +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` @@ -8886,7 +13248,8 @@ Do you wish to continue? Tools - `Werkzeuge` wäre besser, ist aber zu lang für das Panel + ` +Werkzeuge` wäre besser, ist aber zu lang für das Panel Tools @@ -9331,7 +13694,8 @@ Do you wish to continue? Interlacing: - alternativ `Zeilensprungverfahren` + alternativ ` +Zeilensprungverfahren` Interlacing: diff --git a/app/ts/en_US.ts b/app/ts/en_US.ts index 67ad481d2..3069f3b5d 100644 --- a/app/ts/en_US.ts +++ b/app/ts/en_US.ts @@ -1,3732 +1,6897 @@ - - - + + + - AudioParams - - - %1 Hz - - - - - Mono - - - - - Stereo - - - - - 2.1 - - - - - 5.1 - - - - - 7.1 - - - - - - Unknown (0x%1) - - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Mono < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Stereo < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 2.1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 5.1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 7.1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - - - - - Matrix - - - - - Text - - - - - Font - - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Change %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Edit Parameters - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - - - - - Shape - - - - - Solid - - - - - Title - - - - - Tone - - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Change % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Edit +Parameters < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - - olive::ActionSearch - - - Search for action... - - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - - - Error - - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation > + % 1 +: +Audio - % n +Channel, +% +2 +Hz < /numerusform> +< numerusform > % 1 +: +Audio - % n +Channels, +% +2 +Hz < /numerusform> +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Renamed %1 Node(s) - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - - - - - Sequence %1 - - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - - - - - Right - - - - - Bottom - - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - - - - - Bezier - - - - - Hold - - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - - - - - Pixel - - - - - Pixel Format: - - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - - - - - Sample Rate: - - - - - Channel Layout: - - - - - Format: - - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - - - - - Browse for exported file filename - - - - - Preset: - - - - - Range: - - - - - Entire Sequence - - - - - In to Out - - - - - Format: - - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - - - - - Audio - - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - - - - - Cancel - - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - Default - - - - - Last Used - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - - - - - Audio - - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - - - - - Width: - - - - - Height: - - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - - - - - Stretch - - - - - Crop - - - - - Frame Rate: - - - - - Pixel Aspect Ratio: - - - - - Interlacing: - - - - - Quality: - - - - - Codec - - - - - Codec: - - - - - Advanced - - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - %1: Audio - %n Channel, %2Hz - %1: Audio - %n Channels, %2Hz - - - - - %1: Subtitle - - - - - Video - - - - - Audio - - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - - - - - Tracks: - - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - - - - - Hold - - - - - Bezier - - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - - - - - Bezier - - - - - Hold - - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/es_ES.ts b/app/ts/es_ES.ts index 2c0cbd6a9..b466fb0d8 100644 --- a/app/ts/es_ES.ts +++ b/app/ts/es_ES.ts @@ -1,4056 +1,8307 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Mono - - - - Stereo - Estéreo - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Desconocido (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Error al cargar la configuración - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Mono < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Estéreo < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Desconocido(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Error +al +cargar +la +configuración < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - No se pudo cargar la configuración de la aplicación. Esta sesión utilizará valores predeterminados. +% 1 < /source> +< translation > No +se +pudo +cargar +la +configuración +de +la +aplicación.Esta +sesión +utilizará +valores +predeterminados. -%1 - - - - Error saving settings - Error al guardar la configuración - - - - Failed to save application settings. The application may lack write permissions for this location. - No se pudo guardar la configuración de la aplicación. Es posible que la aplicación no tenga permisos de escritura para esta ubicación. - - - - Footage - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - Filename: %1 - Nombre de archivo: %1 - - - This footage is not valid for use - Este metraje no es válido para su uso - - - - ImportTool - - - Don't ask me again - No volver a preguntar - - - - No Active Sequence - Sin secuencia activa - - - - No sequence is currently open. Would you like to create one? - Actualmente no hay ninguna secuencia abierta. ¿Le gustaría crear una? - - - - Automatically Detect Parameters From Footage - Detecta automáticamente los parámetros de las imágenes - - - - Set Parameters Manually - Establecer parámetros manualmente - - - - MoveItemCommand - - Move Item - Mover elemento - - - - NodeCopyPasteWidget - - Error pasting nodes - Error al pegar los nodos - - - Failed to paste nodes: %1 - No se pudieron pegar los nodos: %1 - - - - NodeFactory - - - None - Ninguno - - - - NodeValue - - - None - - - - - Integer - Entero - - - - Float - Flotante - - - - Rational - Racional - - - - Boolean - Boleano - - - - Color - Color - - - - Matrix - Matriz - - - - Text - Texto - - - - Font - Fuente - - - - File - Archivo - - - - Texture - Textura - - - - Samples - Muestras - - - - Vector 2D - Vector 2D - - - - Vector 3D - Vector 3D - - - - Vector 4D - Vector 4D - - - - Bezier - Bézier - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - Desconocido - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - Salida - - - - %1... - %1... - - - - OlivePluginInstance - - - Change %1 - Cambiar %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Editar parámetros - - - - PresetManager - - - Save Preset - Guardar Ajustes - - - - Set preset name: - Nombre del ajuste: - - - - Invalid preset name - Nombre de ajuste no válido - - - - You must enter a preset name - Debes ingresar un nombre - - - - Preset exists - El ajuste ya existe - - - - A preset with this name already exists. Would you like to replace it? - Ya existe un ajuste con este nombre. ¿Quieres reemplazarlo? - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - Introduzca una proporción personalizada (por ejemplo, "4:3", "16/9", etc.): - - - - Invalid custom ratio - Proporción personalizada no válida - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - Error al analizar "%1" como relación de aspecto. Realice la división con un separador ':' o '/'. - - - - RenameItemCommand - - Rename Item - Renombrar elemento - - - - Sequence - - %1 FPS - %1 FPS - - - - Serializer - - - %1 on line %2 - - - - - Stream - - %1: Unknown - %1: Desconocido - - - %1: Image - %2x%3 - %1: Imagen - %2x%3 - - - %1: Video - %2x%3 - %1: Vídeo - %2x%3 - - - %1: Audio - %2 Channel(s), %3Hz - %1: Audio - %2 Canal(es), %3Hz - - - - TimelineViewBlockItem - - %1 +% 1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > Error +al +guardar +la +configuración < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > No +se +pudo +guardar +la +configuración +de +la +aplicación.Es +posible +que +la +aplicación +no +tenga +permisos +de +escritura +para +esta +ubicación. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "vanished" > % 1 +Hz < /translation> +< /message> +< message > +Filename +: % +1 < /source> +< translation +type = "vanished" > Nombre +de +archivo: % +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "vanished" > Este +metraje +no +es +válido +para +su +uso < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > No +volver +a +preguntar < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation > Sin +secuencia +activa < /translation> +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation > Actualmente no +hay +ninguna +secuencia +abierta. ¿Le +gustaría +crear +una ? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > Detecta +automáticamente +los +parámetros +de +las +imágenes < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > Establecer +parámetros +manualmente < /translation> +< /message> +< /context> +< context > +MoveItemCommand < /name> +< message > +Move +Item < /source> +< translation +type = "vanished" > Mover +elemento < /translation> +< /message> +< /context> +< context > +NodeCopyPasteWidget < /name> +< message > +Error +pasting +nodes < /source> +< translation +type = "vanished" > Error +al +pegar +los +nodos < /translation> +< /message> +< message > +Failed +to +paste +nodes: % +1 < /source> +< translation +type = "vanished" > No +se +pudieron +pegar +los +nodos: % +1 < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > Ninguno < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > Entero < /translation> +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > Flotante < /translation> +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > Racional < /translation> +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > Boleano < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Color < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > Matriz < /translation> +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > Texto < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > Fuente < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > Archivo < /translation> +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textura < /translation> +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > Muestras < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > Vector +2 +D < /translation> +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > Vector +3 +D < /translation> +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > Vector +4 +D < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Desconocido < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > Salida < /translation> +< /message> +< message > + + % 1... < /source> +< translation > % 1... < /translation> +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Cambiar % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Editar +parámetros < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation > Guardar +Ajustes < /translation> +< /message> +< message > + + Set +preset +name: +< translation > Nombre +del +ajuste: +< /message> +< message > + + Invalid +preset +name < /source> +< translation > Nombre +de +ajuste +no +válido < /translation> +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation > Debes +ingresar +un +nombre < /translation> +< /message> +< message > + + Preset +exists < /source> +< translation > El +ajuste +ya +existe < /translation> +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation > Ya existe +un +ajuste +con +este +nombre. ¿Quieres +reemplazarlo ? +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation > Introduzca +una +proporción +personalizada(por +ejemplo, +& +quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation > Proporción +personalizada +no +válida < /translation> +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. +Error +al +analizar & quot; +% +1 & quot; +como +relación +de +aspecto.Realice +la +división +con +un +separador & apos; +:& +apos; +o & apos; +/'. + +< /context> +< context > +RenameItemCommand < /name> +< message > +Rename +Item < /source> +< translation +type = "vanished" > Renombrar +elemento < /translation> +< /message> +< /context> +< context > +Sequence < /name> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + Stream < /name> + < message > + % 1 +: +Unknown < /source> +< translation +type = "vanished" > % 1 +: +Desconocido < /translation> +< /message> +< message > + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "vanished" > % 1 +: +Imagen - % 2 +x % 3 < /translation> +< /message> +< message > + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "vanished" > % 1 +: +Vídeo - % 2 +x % 3 < /translation> +< /message> +< message > + % 1 +: +Audio - % 2 +Channel(s), +% +3 +Hz < /source> +< translation +type = "vanished" > % 1 +: +Audio - % 2 +Canal(es), +% +3 +Hz < /translation> +< /message> +< /context> +< context > +TimelineViewBlockItem < /name> +< message > + % 1 -In: %2 -Out: %3 -Length: %4 - %1 +In: % +2 +Out: % +3 +Length: % +4 < /source> +< translation +type = "vanished" > % 1 -Entrada: %2 -Salida: %3 -Longitud: %4 - - - - Tool - - - Empty - Vacío - - - - Bars - Barras - - - - Shape - - - - - Solid - Sólido - - - - Title - Título - - - - Tone - Tono - - - - Subtitle - - - - - Unknown - Desconocido - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - Completo - - - - 1/%1 - 1/%1 - - - - 8-bit - 8-bit - - - - 10-bit Packed - - - - - 16-bit Integer - 16-bit Entero - - - - Half-Float (16-bit) - Medio-Coma-Flotante (16-bit) - - - - Full-Float (32-bit) - Máximo-Coma-Flotante (32-bit) - - - - Unknown (0x%1) - Desconocido (0x%1) - - - - %1 FPS - %1 FPS - - - - Square Pixels (%1) - Píxeles Cuadrados (%1) - - - - NTSC Standard (%1) - NTSC Estándar (%1) - - - - NTSC Widescreen (%1) - NTSC Pant. Ancha (%1) - - - - PAL Standard (%1) - PAL Estándar (%1) - - - - PAL Widescreen (%1) - PAL Pant. Ancha (%1) - - - - HD Anamorphic 1080 (%1) - HD Anamórfico 1080 (%1) - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - Mostrar este texto de ayuda - - - - Show application version - Mostrar la versión de la aplicación - - - - Start in full-screen mode - Iniciar en modo de pantalla completa - - - - Export only (No GUI) - Exportar solo (sin Interfaz Gráfica de Usuario) - - - - Override language with file - Anular idioma con archivo - - - - qm-file - Archivo-qm - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - Proyecto para abrir al inicio - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +Entrada: % +2 +Salida: % +3 +Longitud: % +4 < /translation> +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > Vacío < /translation> +< /message> +< message > + +Bars < /source> +< translation > Barras < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Solid < /source> +< translation > Sólido < /translation> +< /message> +< message > + +Title < /source> +< translation > Título < /translation> +< /message> +< message > + +Tone < /source> +< translation > Tono < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Desconocido < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > Completo < /translation> +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + +8 - bit < /source> +< translation > 8 - bit < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation > 16 - bit +Entero < /translation> +< /message> +< message > + +Half - Float(16 - bit) < /source> +< translation > Medio - Coma - Flotante(16 - bit) < /translation> +< /message> +< message > + +Full - Float(32 - bit) < /source> +< translation > Máximo - Coma - Flotante(32 - bit) < /translation> +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > Desconocido(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > % 1 +FPS < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation > Píxeles +Cuadrados( % 1 +) + +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > NTSC +Estándar( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > NTSC +Pant.Ancha( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > PAL +Estándar( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > PAL +Pant.Ancha( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation > HD +Anamórfico +1080( % 1 +) + +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > Mostrar +este +texto +de +ayuda < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > Mostrar +la +versión +de +la +aplicación < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > Iniciar +en +modo +de +pantalla +completa < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > Exportar +solo(sin +Interfaz +Gráfica +de +Usuario +) + +< /message> +< message > + + Override +language +with file < /source> +< translation > Anular idioma +con +archivo < /translation> +< /message> +< message > + +qm - file < /source> +< translation > Archivo - qm < /translation> +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > Proyecto +para +abrir +al +inicio < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Preestablecidos +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > Método +de +compresión: +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > Factor +de +tasa +constante < /translation> +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation > Acerca +de % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +es +un +editor +de +vídeo +no +lineal.Esta +aplicación +es +gratuita +y +está +protegida +bajo +la +licencia +GNU +GPL. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > El +equipo +de +Olive +está +obligado +a +informar +a +los +usuarios +que +el +código +fuente +de +la +aplicación +esta +disponible +para +su +descarga +desde +su +sitio +web. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation > Búsqueda +de +acción +... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio < /source> +< translation +type = "obsolete" > Audio < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > Monitor +de +Audio < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > Entrada +: + +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > Salida +: + +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation > Longitud < /translation> + < /message> + < message > + Media +In < /source> +< translation +type = "vanished" > Medios +en < /translation> +< /message> +< message > + + Enabled < /source> + < translation > Habilitado < /translation> + < /message> + < message > + Speed < /source> + < translation +type = "vanished" > Velocidad < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > Desenfoque < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > Desenfocar +una +imagen. < /translation> +< /message> +< message > + +Input < /source> +< translation > Entrada < /translation> +< /message> +< message > + +Method < /source> +< translation > Método < /translation> +< /message> +< message > + +Box < /source> +< translation > Caja < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > Gausiano < /translation> +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Radius < /source> +< translation > Radio < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > Horizontal < /translation> +< /message> +< message > + +Vertical < /source> +< translation > Vertical < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation > Repetir +píxeles +de +borde < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Dirección < /translation> +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Centro < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrada < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > Calidad +: + +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Clip < /source> +< translation > Clip < /translation> +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation > Un +nodo +basado +en +el +tiempo +que +representa +una +fuente +de +medios. < /translation> +< /message> +< message > + +Buffer < /source> +< translation > Buffer < /translation> +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > Medios +en < /translation> +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > Velocidad < /translation> +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Bucle(Loop) < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > (R) +Rojo < /translation> +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > (G) +Verde < /translation> +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > (B) +Azul < /translation> +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > Seleccionar +color < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrada < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > (G) +Verde < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > (B) +Azul < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > Color < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation > Manejo +del +color < /translation> +< /message> +< message > + + Input +: + +< translation > Entrada +: + +< /message> +< message > + + Color +Space: +< translation > Espacio +de +color: +< /message> +< message > + + Display +: + +< translation > Monitor +: + +< /message> +< message > + + View +: + +< translation > Ver +: + +< /message> +< message > + + Look +: + +< translation > Mira +: + +< /message> +< message > + +(None) < /source> +< translation > (Nada) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation > (R) +Rojo < /translation> +< /message> +< message > + + Green < /source> + < translation > (G) +Verde < /translation> +< /message> +< message > + + Blue < /source> + < translation > (B) +Azul < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation > Vista +Previa < /translation> +< /message> +< message > + +Input < /source> +< translation > Entrada < /translation> +< /message> +< message > + +Reference < /source> +< translation > Referencia < /translation> +< /message> +< message > + +Display < /source> +< translation > Monitor < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation > Audio +Ajustado % 1 +:% +2 < /translation> +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation > Error +de +importación < /translation> +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation > Nada +para +importar < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation > Importando +... + +< /message> +< message > + + Import +footage +... + +< translation > Importar +metraje +... + +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Preestablecidos: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - Método de compresión: - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - Factor de tasa constante - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - Acerca de %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive es un editor de vídeo no lineal. Esta aplicación es gratuita y está protegida bajo la licencia GNU GPL. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - El equipo de Olive está obligado a informar a los usuarios que el código fuente de la aplicación esta disponible para su descarga desde su sitio web. - - - - olive::ActionSearch - - - Search for action... - Búsqueda de acción... - - - - olive::AudioInput - - Audio - Audio - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - Monitor de Audio - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bézier - - - - In: - Entrada: - - - - Out: - Salida: - - - - olive::Block - - - Length - Longitud - - - Media In - Medios en - - - - Enabled - Habilitado - - - Speed - Velocidad - - - - olive::BlurFilterNode - - - Blur - Desenfoque - - - - Blurs an image. - Desenfocar una imagen. - - - - Input - Entrada - - - - Method - Método - - - - Box - Caja - - - - Gaussian - Gausiano - - - - Directional - - - - - Radial - - - - - Radius - Radio - - - - Horizontal - Horizontal - - - - Vertical - Vertical - - - - Repeat Edge Pixels - Repetir píxeles de borde - - - - Direction - Dirección - - - - Center - Centro - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - Entrada - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - Calidad: - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - Clip - - - - A time-based node that represents a media source. - Un nodo basado en el tiempo que representa una fuente de medios. - - - - Buffer - Buffer - - - - Media In - Medios en - - - - Speed - Velocidad - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - Bucle (Loop) - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - (R) Rojo - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - (G) Verde - - - - Cyan - - - - - Teal - - - - - Blue - (B) Azul - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - Seleccionar color - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - Entrada - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - (G) Verde - - - - Blue - (B) Azul - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Color - - - - olive::ColorSpaceChooser - - - Color Management - Manejo del color - - - - Input: - Entrada: - - - - Color Space: - Espacio de color: - - - - Display: - Monitor: - - - - View: - Ver: - - - - Look: - Mira: - - - - (None) - (Nada) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - (R) Rojo - - - - Green - (G) Verde - - - - Blue - (B) Azul - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - Vista Previa - - - - Input - Entrada - - - - Reference - Referencia - - - - Display - Monitor - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - Audio Ajustado %1:%2 - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - Error de importación - - - - Nothing to import - Nada para importar - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - Importando... - - - - Import footage... - Importar metraje... - - - - Failed to import footage - La importación a fallado - - - - Failed to find active Project panel - No se pudo encontrar el panel del Proyecto activo - - - - No Active Project - Ningún Proyecto Activo - - - - No project is currently open to set the properties for - Actualmente no hay ningún proyecto abierto para establecer las propiedades de - - - - Failed to create new folder - La creación de la nueva carpeta a fallado - - - - - Failed to find active project - No se pudo encontrar el proyecto activo - - - - New Folder - Nueva Carpeta - - - - Created New Folder - - - - - Failed to create new sequence - No se pudo crear una nueva secuencia - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - Posible secuencia de imágenes detectada - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - Parece que el archivo '%1' podría ser parte de una secuencia de imágenes. ¿Le gustaría importarlo como tal? - - - - You must specify a project file to export - Debe especificar un archivo de proyecto para exportar - - - - Specified project does not exist - El proyecto especificado no existe - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - Project contains no sequences, nothing to export - El proyecto no contiene secuencias, nada para exportar - - - This project has multiple sequences. Which do you wish to export? - Este proyecto tiene múltiples secuencias. ¿Qué desea exportar? - - - Enter number (or %1 to cancel): - Ingrese el número (o %1 para cancelar): - - - Invalid sequence number - Número de secuencia no válido - - - Export succeeded - Exportado con éxito - - - Export failed: %1 - La exportación ha fallado %1 - - - Project failed to load: %1 - No se pudo cargar el proyecto: %1 - - - - Failed to open startup file - No se pudo abrir el archivo de inicio - - - - The project "%1" doesn't exist. A new project will be started instead. - El proyecto "%1" no existe. En su lugar, se iniciará un nuevo proyecto. - - - - - Missing OpenTimelineIO Libraries - Faltan bibliotecas OpenTimelineIO - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - Esta compilación se compiló sin OpenTimelineIO y, por lo tanto, no puede abrir archivos OpenTimelineIO. - - - Save Project - Guardar Proyecto - - - - - Error - Error - - - - This Sequence is empty. There is nothing to export. - Esta secuencia está vacía. No hay nada que exportar. - - - - No valid sequence detected. + +< translation > La +importación +a +fallado < /translation> +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation > No +se +pudo +encontrar +el +panel +del +Proyecto +activo < /translation> +< /message> +< message > + + No +Active +Project < /source> +< translation > Ningún +Proyecto +Activo < /translation> +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation > Actualmente no +hay +ningún +proyecto +abierto +para +establecer +las +propiedades +de < /translation> +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation > La +creación +de +la +nueva +carpeta +a +fallado < /translation> +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation > No +se +pudo +encontrar +el +proyecto +activo < /translation> +< /message> +< message > + + New +Folder < /source> +< translation > Nueva +Carpeta < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation > No +se +pudo +crear +una +nueva +secuencia < /translation> +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation > Posible +secuencia +de +imágenes +detectada < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - No se detectó una secuencia válida. +as +such ? + < translation > Parece que +el +archivo & apos; +% +1 & apos; +podría +ser +parte +de +una +secuencia +de +imágenes. ¿Le +gustaría +importarlo +como +tal ? +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation > Debe +especificar +un +archivo +de +proyecto +para +exportar < /translation> +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation > El +proyecto +especificado +no +existe < /translation> +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > + < /message> + < message > + Project +contains +no +sequences, nothing +to +export + +< translation +type = "vanished" > El +proyecto +no +contiene +secuencias, nada +para +exportar < /translation> +< /message> +< message > +This +project +has +multiple +sequences.Which +do you wish +to +export +? + < translation type = "vanished" > Este +proyecto +tiene +múltiples +secuencias. ¿Qué +desea +exportar ? + < /message> + < message > + Enter number(or % 1 +to +cancel +): + +< translation +type = "vanished" > Ingrese +el +número(o % 1 +para +cancelar +): + +< /message> +< message > +Invalid +sequence +number < /source> +< translation +type = "vanished" > Número +de +secuencia +no +válido < /translation> +< /message> +< message > +Export +succeeded < /source> +< translation +type = "vanished" > Exportado +con +éxito < /translation> +< /message> +< message > +Export +failed: % +1 < /source> +< translation +type = "vanished" > La +exportación +ha +fallado % 1 < /translation> +< /message> +< message > +Project +failed +to +load: % +1 < /source> +< translation +type = "vanished" > No +se +pudo +cargar +el +proyecto: % +1 < /translation> +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation > No +se +pudo +abrir +el +archivo +de +inicio < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation > El +proyecto & quot; +% +1 & quot; +no +existe.En +su +lugar, se +iniciará +un +nuevo +proyecto. < /translation> +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation > Faltan +bibliotecas +OpenTimelineIO < /translation> +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation > Esta +compilación +se +compiló +sin +OpenTimelineIO +y, por +lo +tanto, no +puede +abrir +archivos +OpenTimelineIO. < /translation> +< /message> +< message > +Save +Project < /source> +< translation +type = "vanished" > Guardar +Proyecto < /translation> +< /message> +< message > + + +Error < /source> +< translation > Error < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation > Esta +secuencia +está +vacía.No +hay +nada +que +exportar. < /translation> +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation > No +se +detectó +una +secuencia +válida.Asegúrese +de +que +una +secuencia +esté +cargada +y +tenga +un +nodo +Visor +conectado. < /translation> +< /message> +< message > +Olive +Project < /source> +< translation +type = "vanished" > Proyecto +de +Olive < /translation> +< /message> +< message > + +OpenTimelineIO < /source> +< translation > OpenTimelineIO < /translation> +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Asegúrese de que una secuencia esté cargada y tenga un nodo Visor conectado. - - - Olive Project - Proyecto de Olive - - - - OpenTimelineIO - OpenTimelineIO - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > Guardar +Proyecto +Como < /translation> +< /message> +< message > + + Load +Project < /source> +< translation > Cargar +Proyecto < /translation> +< /message> +< message > + + Label +Node < /source> +< translation > Etiqueta +del +nodo < /translation> +< /message> +< message > + + Set +node +label < /source> +< translation > Establecer +etiqueta +de +nodo < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > Secuencia % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation > No +se +puede +abrir +el +proyecto +reciente < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation > El proyecto & quot; +% +1 & quot; +no +existe. ¿Le +gustaría +eliminar +este +archivo +de +la +lista +reciente ? +< /message> +< message > + + Unsaved +Changes < /source> +< translation > Cambios +no +guardados < /translation> +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation > El proyecto & apos; +% +1 & apos; +tiene +cambios +sin +guardar. ¿Quieres +Guardarlos ? +< /message> +< message > + + Save < /source> + < translation > Guardar < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > Guardar +Todo < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > No +Guardar < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translation +type = "vanished" > No +guardar +Ninguno < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation > No +se +pudo +almacenar +en +caché +la +secuencia < /translation> +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation > No +se +encontró +ningún +visor +activo +con +esta +secuencia. < /translation> +< /message> +< message > + + Open +Project < /source> +< translation > Abrir +Proyecto < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textura < /translation> +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::CrashHandlerDialog < /name> + < message > + Olive < /source> + < translation +type = "vanished" > Olive < /translation> + < /message> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "vanished" > Lo +sentimos, Olive +ha +fallado.Ayúdenos +a +solucionarlo +enviando +un +informe +de +error.Gracias. < /translation> +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation > Describe +lo +que +estabas +haciendo +con +el +mayor +detalle +posible.Si +puede, proporcione +los +pasos +para +reproducir +este +bloqueo.Gracias. < /translation> +< /message> +< message > + + Crash +Report: +< translation > Reporte +del +error: +< /message> +< message > + + Send +Error +Report < /source> +< translation > Enviar +el +reporte +del +error < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > No +Enviar < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > Esperando +que +se +genere +el +informe +de +errores +... + +< /message> +< message > + + Upload +Failed < /source> +< translation > Subida +fallida < /translation> +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > + < /message> + < message > + Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "vanished" > No +se +pudo +enviar +el +informe +de +error.Por +favor, inténtelo +de +nuevo +más +tarde.Gracias. < /translation> +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "vanished" > Sin +resumen +de +fallos < /translation> +< /message> +< message > +Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "vanished" >¿Está +seguro +de +que +desea +enviar +un +informe +de +error +sin +resumen ? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + +Texture < /source> +< translation > Textura < /translation> +< /message> +< message > + +Left < /source> +< translation > Izquierda < /translation> +< /message> +< message > + +Top < /source> +< translation > Arriba < /translation> +< /message> +< message > + +Right < /source> +< translation > Derecha < /translation> +< /message> +< message > + +Bottom < /source> +< translation > Abajo < /translation> +< /message> +< message > + +Feather < /source> +< translation > Pluma < /translation> +< /message> +< message > + +Crop < /source> +< translation > Recortar < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation > Recortar +los +bordes +de +una +imagen. < /translation> +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > Fundido +Cruzado < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation > Transición +suave +entre +dos +clips. < /translation> +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > Editor +de +Curvas < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation > Zoom +para +ajustar < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > Lineal < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + +Hold < /source> +< translation > Mantener < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrada < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > (G) +Verde < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > (B) +Azul < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > Método < /translation> +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation > Sumergir +para +colorear < /translation> +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation > Haga +la +transición +entre +clips +sumergiéndose +en +un +color. < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Color < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation > Caché +de +Disco: % +1 < /translation> +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation > Ajustes +de +la +Caché +de +disco < /translation> +< /message> +< message > + + Maximum +Disk +Cache: +< translation > Caché +de +Disco +Máxima: +< /message> +< message > + + % 1 +GB < /source> +< translation > % 1 +GB < /translation> +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation > Limpiar +la +Caché +de +Disco < /translation> +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation > Borrar +automáticamente +la +caché +del +disco +al +cerrar < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation >¿Está +seguro +de +que +desea +borrar +la +caché +del +disco +en & apos; +% +1 & apos; + ? + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation > Caché +de +disco +borrada < /translation> +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation > La +memoria +caché +del +disco +no +se +borró +por +completo.Es +posible +que +deba +eliminar +los +archivos +de +caché +manualmente. < /translation> +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation > Caché +de +disco +parcialmente +borrado < /translation> +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation > Error +de +Caché +de +Disco < /translation> +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation > No +se +puede +configurar +la +caché +de +disco +de +la +aplicación.Usando +el +valor +predeteminado +en +su +lugar. < /translation> +< /message> +< message > + + Disk +Cache < /source> +< translation > Caché +de +Disco < /translation> +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation > Ha elegido +cambiar +la +ubicación +de +la +caché +de +disco +predeterminada.Esto +invalidará +tu +caché +actual. ¿Quieres +continuar ? +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation > No +se +pudo +abrir +la +caché +de +disco +en & quot; +% +1 & quot; +. +Pruebe +con +una +carpeta +diferente. < /translation> +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrada < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > Monitor < /translation> +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Ver < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Dirección < /translation> +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textura < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Color < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Opacidad < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > Transcurrido; +% +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > Restante +: % +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + +Advanced < /source> +< translation > Avanzado < /translation> +< /message> +< message > + +Pixel < /source> +< translation > Píxel < /translation> +< /message> +< message > + + Pixel +Format: +< translation > Formato +de +Píxel: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Performance < /source> +< translation > Rendimiento < /translation> +< /message> +< message > + + Threads +: + +< translation > Hilos(Threads) +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > Codificación(Códec) +: + +< /message> +< message > + + Sample +Rate: +< translation > Frecuencia +de +muestreo: +< /message> +< message > + + Channel +Layout: +< translation > Disposición +del +canal: +< /message> +< message > + + Format +: + +< translation > Formato +: + +< /message> +< message > + + Bit +Rate: +< translation > Tasa +de +bits: +< /message> +< message > + + % 1 +kbps < /source> +< translation > % 1 +kbps < /translation> +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > +< /message> +< message > + + H +.264 < /source> +< translation > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > +< /message> +< message > + +OpenEXR < /source> +< translation > +< /message> +< message > + +PNG < /source> +< translation > +< /message> +< message > + +ProRes < /source> +< translation > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > +< /message> +< message > + +MP2 < /source> +< translation > +< /message> +< message > + +MP3 < /source> +< translation > +< /message> +< message > + +AAC < /source> +< translation > +< /message> +< message > + +PCM(Uncompressed) < /source> +< translation > PCM(SinComprimir) < /translation> +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Desconocido < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > Nombre +de +Archivo: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation > Busque +el +nombre +del +archivo +exportado < /translation> +< /message> +< message > + + Preset +: + +< translation > Preestablecidos +: + +< /message> +< message > +Same +As +Source - High +Quality < /source> +< translation +type = "vanished" > Igual +que +la +fuente - Alta +Calidad < /translation> +< /message> +< message > +Same +As +Source - Medium +Quality < /source> +< translation +type = "vanished" > Igual +que +la +fuente - Calidad +Media < /translation> +< /message> +< message > +Same +As +Source - Low +Quality < /source> +< translation +type = "vanished" > Igual +que +la +fuente - Baja +Calidad < /translation> +< /message> +< message > + + Range +: + +< translation > Rango +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation > Secuencia +entera < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > De +entrada +a +salida < /translation> +< /message> +< message > + + Format +: + +< translation > Formato +: + +< /message> +< message > + + Export +Video < /source> +< translation > Exportar +Vídeo < /translation> +< /message> +< message > + + Export +Audio < /source> +< translation > Exportar +Audio < /translation> +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Vídeo < /translation> +< /message> +< message > + +Audio < /source> +< translation > Audio < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > Exportar < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Cancelar < /translation> +< /message> +< message > + + Preview < /source> + < translation > Vista +Previa < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation > Parámetros +inválidos < /translation> +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Por +defecto < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > + < /message> + < message > + Both +video +and +audio +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "vanished" > Tanto +el +video +como +el +audio +están +desactivados.No +hay +nada +que +exportar. < /translation> +< /message> +< message > + + + + Invalid +filename < /source> +< translation > Nombre +de +archivo +no +válido < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation > El nombre +de +archivo +debe +contener +la +extensión & quot; +% +1 & quot; +. ¿Quieres +agregarla +automáticamente ? +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation > No +se +pudo +crear +el +directorio +de +salida < /translation> +< /message> +< message > +The +intended +output +directory +doesn & apos; +t +exist +and +Olive +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "vanished" > El +directorio +de +salida +previsto +no +existe +y +Olive +no +pudo +crearlo.Elija +una +ubicación +diferente +o +cree +la +carpeta. < /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation > Confirmar +sobreescritura < /translation> +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation > El archivo & quot; +% +1 & quot; +ya +existe. ¿Quieres +sobreescribirlo ? +< /message> +< message > + + Invalid +Parameters < /source> +< translation > Parámetros +inválidos < /translation> +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation > El +ancho +y +el +alto +deben +ser +números +pares(multiplos +de +2 +). + +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > +< /message> +< message > + + Matroska +Video < /source> +< translation > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > +< /message> +< message > + +PNG < /source> +< translation > +< /message> +< message > + +TIFF < /source> +< translation > +< /message> +< message > + +QuickTime < /source> +< translation > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Desconocido < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Vídeo < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Nombre +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation > Exportando & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation > No +se +pudo +crear +el +codificador < /translation> +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +open +file < /source> +< translation +type = "vanished" > Fallo +al +abrir +el +archivo < /translation> +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation > No +se +pudo +sobrescribir & quot; +% +1 & quot; +. +En +su +lugar, la +exportación +se +ha +guardado +como & quot; +% +2 & quot; +. + +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > +Basic < /source> +< translation +type = "vanished" > Básico < /translation> +< /message> +< message > + + General < /source> + < translation +type = "unfinished" > General < /translation> +< /message> +< message > + + Width +: + +< translation > Ancho +: + +< /message> +< message > + + Height +: + +< translation > Alto +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > Mantener +la +relación +de +aspecto: +< /message> +< message > + + Scaling +Method: +< translation > Método +de +escala: +< /message> +< message > + +Fit < /source> +< translation > Ajuste < /translation> +< /message> +< message > + +Stretch < /source> +< translation > Estirar < /translation> +< /message> +< message > + +Crop < /source> +< translation > Recortar < /translation> +< /message> +< message > + + Frame +Rate: +< translation > Fotogramas +por +Segundo: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > Relación +de +aspecto +de +píxeles: +< /message> +< message > + + Interlacing +: + +< translation > Entrelazado +: + +< /message> +< message > + + Quality +: + +< translation > Calidad +: + +< /message> +< message > + +Codec < /source> +< translation > Códec < /translation> +< /message> +< message > + + Codec +: + +< translation > Códec +: + +< /message> +< message > + +Advanced < /source> +< translation > Avanzado < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrada < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > Horizontal < /translation> +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > Vertical < /translation> +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > % 1 +dB < /translation> +< /message> +< message > + + % 1 % +< translation > % 1 % +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > Carpeta < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > Nombre +de +archivo < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > % 1 +: +Imagen - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > % 1 +: +Vídeo - % 2 +x % 3 < /translation> +< /message> +< message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Vídeo < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Desconocido < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > Nombre +de +archivo: % +1 < /translation> +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > Medios < /translation> +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation > & quot; +% +1 & quot; +Propiedades < /translation> +< /message> +< message > + + Name +: + +< translation > Nombre +: + +< /message> +< message > + + Tracks +: + +< translation > Pistas +: + +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Desconocido < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + +Footage < /source> +< translation > Metraje < /translation> +< /message> +< message > + + Filename < /source> + < translation > Nombre +de +archivo < /translation> +< /message> +< message > + +Actions < /source> +< translation > Acciones < /translation> +< /message> +< message > + +Browse < /source> +< translation > Buscar < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation > Volver +a +vincular +el +metraje < /translation> +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation > Volver +a +vincular & quot; +% +1 & quot; + +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "vanished" > Todos +los +archivos < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation > Visor +de +imágenes < /translation> +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > Personalizado +... + +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > Personalizado( % 1 +) + +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + +Gap < /source> +< translation > Hueco < /translation> +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation > Un +nodo +basado +en +el +tiempo +que +representa +un +espacio +vacío. < /translation> +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > Base < /translation> +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > Tasa +de +bits(Mbps) +: + +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > Tasa +de +bits +máxima(Mbps) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Dos +Pases < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > Tamaño +del +archivo +de +destino(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Dos +Pases < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation > Método +de +compresión: +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation > Factor +de +tasa +constante < /translation> +< /message> +< message > + + Target +Bit +Rate < /source> +< translation > Tasa +de +bits < /translation> +< /message> +< message > + + Target +File +Size < /source> +< translation > Tamaño +de +archivo +de +destino < /translation> +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation > Secuencia +de +imágenes: +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + +None(Progressive) < /source> +< translation > Ninguno(Progresivo) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation > Campo +superior +primero < /translation> +< /message> +< message > + + Bottom - Field +First < /source> +< translation > Campo +inferior +primero < /translation> +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation > Propiedades +del +fotograma +clave < /translation> +< /message> +< message > + + In +: + +< translation > Entrada +: + +< /message> +< message > + + Out +: + +< translation > Salida +: + +< /message> +< message > + +Linear < /source> +< translation > Lineal < /translation> +< /message> +< message > + +Hold < /source> +< translation > Mantener < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Lineal < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Mantener < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > P & ropiedades < /translation> +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > Lineal < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > Bézier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > Mantener < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "vanished" > P & ropiedades < /translation> + < /message> + < /context> + < context > + olive::LoadOTIOTask < /name> + < message > + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; + +< translation +type = "vanished" > No +se +pudo +cargar +OpenTimelineIO +desde +el +archivo & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -To remedy this, please do one of the following: +OpenTimelineIO +Error: -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - Guardar Proyecto Como - - - - Load Project - Cargar Proyecto - - - - Label Node - Etiqueta del nodo - - - - Set node label - Establecer etiqueta de nodo - - - - Sequence %1 - Secuencia %1 - - - - Cannot open recent project - No se puede abrir el proyecto reciente - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - El proyecto "%1" no existe. ¿Le gustaría eliminar este archivo de la lista reciente? - - - - Unsaved Changes - Cambios no guardados - - - - The project '%1' has unsaved changes. Would you like to save them? - El proyecto '%1' tiene cambios sin guardar. ¿Quieres Guardarlos? - - - - Save - Guardar - - - Save All - Guardar Todo - - - - Don't Save - No Guardar - - - Don't Save All - No guardar Ninguno - - - - Failed to cache sequence - No se pudo almacenar en caché la secuencia - - - - No active viewer found with this sequence. - No se encontró ningún visor activo con esta secuencia. - - - - Open Project - Abrir Proyecto - - - - olive::CornerPinDistortNode - - - Texture - Textura - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - Lo sentimos, Olive ha fallado. Ayúdenos a solucionarlo enviando un informe de error. Gracias. - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - Describe lo que estabas haciendo con el mayor detalle posible. Si puede, proporcione los pasos para reproducir este bloqueo. Gracias. - - - - Crash Report: - Reporte del error: - - - - Send Error Report - Enviar el reporte del error - - - - Don't Send - No Enviar - - - - Waiting for crash report to be generated... - Esperando que se genere el informe de errores... - - - - Upload Failed - Subida fallida - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: - -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - Failed to send error report. Please try again later. - No se pudo enviar el informe de error. Por favor, inténtelo de nuevo más tarde. Gracias. - - - No Crash Summary - Sin resumen de fallos - - - Are you sure you want to send an error report with no crash summary? - ¿Está seguro de que desea enviar un informe de error sin resumen? - - - - olive::CropDistortNode - - - Texture - Textura - - - - Left - Izquierda - - - - Top - Arriba - - - - Right - Derecha - - - - Bottom - Abajo - - - - Feather - Pluma - - - - Crop - Recortar - - - - Crop the edges of an image. - Recortar los bordes de una imagen. - - - - olive::CrossDissolveTransition - - - Cross Dissolve - Fundido Cruzado - - - - Smoothly transition between two clips. - Transición suave entre dos clips. - - - - olive::CurvePanel - - - Curve Editor - Editor de Curvas - - - - olive::CurveView - - - Zoom to Fit - Zoom para ajustar - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Lineal - - - - Bezier - Bézier - - - - Hold - Mantener - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - Entrada - - - - Key Color - - - - - Green - (G) Verde - - - - Blue - (B) Azul - - - - Method - Método - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - Sumergir para colorear - - - - Transition between clips by dipping to a color. - Haga la transición entre clips sumergiéndose en un color. - - - - Color - Color - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - Caché de Disco: %1 - - - - Disk Cache Settings - Ajustes de la Caché de disco - - - - Maximum Disk Cache: - Caché de Disco Máxima: - - - - %1 GB - %1 GB - - - - - - Clear Disk Cache - Limpiar la Caché de Disco - - - - Automatically clear disk cache on close - Borrar automáticamente la caché del disco al cerrar - - - - Are you sure you want to clear the disk cache in '%1'? - ¿Está seguro de que desea borrar la caché del disco en '%1'? - - - - Disk Cache Cleared - Caché de disco borrada - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - La memoria caché del disco no se borró por completo. Es posible que deba eliminar los archivos de caché manualmente. - - - - Disk Cache Partially Cleared - Caché de disco parcialmente borrado - - - - olive::DiskManager - - - - Disk Cache Error - Error de Caché de Disco - - - - Unable to set custom application disk cache. Using default instead. - No se puede configurar la caché de disco de la aplicación. Usando el valor predeteminado en su lugar. - - - - Disk Cache - Caché de Disco - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - Ha elegido cambiar la ubicación de la caché de disco predeterminada. Esto invalidará tu caché actual. ¿Quieres continuar? - - - - Failed to open disk cache at "%1". Try a different folder. - No se pudo abrir la caché de disco en "%1". Pruebe con una carpeta diferente. - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - Entrada - - - - Display - Monitor - - - - View - Ver - - - - Direction - Dirección - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - Textura - - - - Color - Color - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Opacidad - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - Transcurrido; %1 - - - - Remaining: %1 - Restante: %1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Avanzado - - - - Pixel - Píxel - - - - Pixel Format: - Formato de Píxel: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - Rendimiento - - - - Threads: - Hilos (Threads): - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Codificación (Códec): - - - - Sample Rate: - Frecuencia de muestreo: - - - - Channel Layout: - Disposición del canal: - - - - Format: - Formato: - - - - Bit Rate: - Tasa de bits: - - - - %1 kbps - %1 kbps - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - PCM (SinComprimir) - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - Desconocido - - - - olive::ExportDialog - - - Filename: - Nombre de Archivo: - - - - Browse for exported file filename - Busque el nombre del archivo exportado - - - - Preset: - Preestablecidos: - - - Same As Source - High Quality - Igual que la fuente - Alta Calidad - - - Same As Source - Medium Quality - Igual que la fuente - Calidad Media - - - Same As Source - Low Quality - Igual que la fuente - Baja Calidad - - - - Range: - Rango: - - - - Entire Sequence - Secuencia entera - - - - In to Out - De entrada a salida - - - - Format: - Formato: - - - - Export Video - Exportar Vídeo - - - - Export Audio - Exportar Audio - - - - Export Subtitles - - - - - Video - Vídeo - - - - Audio - Audio - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Exportar - - - - Cancel - Cancelar - - - - Preview - Vista Previa - - - - Invalid parameters - Parámetros inválidos - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - Default - Por defecto - - - - Last Used - - - - Both video and audio are disabled. There's nothing to export. - Tanto el video como el audio están desactivados. No hay nada que exportar. - - - - - - Invalid filename - Nombre de archivo no válido - - - - The filename must contain the extension "%1". Would you like to append it automatically? - El nombre de archivo debe contener la extensión "%1". ¿Quieres agregarla automáticamente? - - - - Failed to create output directory - No se pudo crear el directorio de salida - - - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - El directorio de salida previsto no existe y Olive no pudo crearlo. Elija una ubicación diferente o cree la carpeta. - - - - Confirm Overwrite - Confirmar sobreescritura - - - - The file "%1" already exists. Do you want to overwrite it? - El archivo "%1" ya existe. ¿Quieres sobreescribirlo? - - - - Invalid Parameters - Parámetros inválidos - - - - Width and height must be multiples of 2. - El ancho y el alto deben ser números pares (multiplos de 2). - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - Desconocido - - - - olive::ExportFormatComboBox - - - Video - Vídeo - - - - Audio - Audio - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - Nombre: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - - - - - olive::ExportTask - - - Exporting "%1" - Exportando "%1" - - - - Failed to create encoder - No se pudo crear el codificador - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - Failed to open file - Fallo al abrir el archivo - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - No se pudo sobrescribir "%1". En su lugar, la exportación se ha guardado como "%2". - - - - olive::ExportVideoTab - - Basic - Básico - - - - General - General - - - - Width: - Ancho: - - - - Height: - Alto: - - - - Maintain Aspect Ratio: - Mantener la relación de aspecto: - - - - Scaling Method: - Método de escala: - - - - Fit - Ajuste - - - - Stretch - Estirar - - - - Crop - Recortar - - - - Frame Rate: - Fotogramas por Segundo: - - - - Pixel Aspect Ratio: - Relación de aspecto de píxeles: - - - - Interlacing: - Entrelazado: - - - - Quality: - Calidad: - - - - Codec - Códec - - - - Codec: - Códec: - - - - Advanced - Avanzado - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - Entrada - - - - Horizontal - Horizontal - - - - Vertical - Vertical - - - - olive::FloatSlider - - - %1 dB - %1 dB - - - - %1% - %1% - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - Carpeta - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - Nombre de archivo - - - - %1: Image - %2x%3 - %1: Imagen - %2x%3 - - - - %1: Video - %2x%3 - %1: Vídeo - %2x%3 - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - %1: Subtitle - - - - - Video - Vídeo - - - - Audio - Audio - - - - Subtitle - - - - - Unknown - Desconocido - - - - Filename: %1 - Nombre de archivo: %1 - - - - Invalid - - - - - Media - Medios - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - "%1" Propiedades - - - - Name: - Nombre: - - - - Tracks: - Pistas: - - - - Subtitles - - - - - Unknown - Desconocido - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - Metraje - - - - Filename - Nombre de archivo - - - - Actions - Acciones - - - - Browse - Buscar - - - - Relink Footage - Volver a vincular el metraje - - - - Relink "%1" - Volver a vincular "%1" - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Todos los archivos - - - - olive::FootageViewerPanel - - - Footage Viewer - Visor de imágenes - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - Personalizado... - - - - Custom (%1) - Personalizado (%1) - - - - olive::GapBlock - - - Gap - Hueco - - - - A time-based node that represents an empty space. - Un nodo basado en el tiempo que representa un espacio vacío. - - - - olive::GeneratorWithMerge - - - Base - Base - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - Tasa de bits (Mbps): - - - - Maximum Bit Rate (Mbps): - Tasa de bits máxima (Mbps): - - - - Two-Pass - Dos Pases - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Tamaño del archivo de destino (MB): - - - - Two-Pass - Dos Pases - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - Método de compresión: - - - - Constant Rate Factor - Factor de tasa constante - - - - Target Bit Rate - Tasa de bits - - - - Target File Size - Tamaño de archivo de destino - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - Secuencia de imágenes: - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Ninguno (Progresivo) - - - - Top-Field First - Campo superior primero - - - - Bottom-Field First - Campo inferior primero - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - Propiedades del fotograma clave - - - - In: - Entrada: - - - - Out: - Salida: - - - - Linear - Lineal - - - - Hold - Mantener - - - - Bezier - Bézier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Lineal - - - - Bezier - Bézier - - - - Hold - Mantener - - - - P&roperties - P&ropiedades - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Lineal - - - Bezier - Bézier - - - Hold - Mantener - - - P&roperties - P&ropiedades - - - - olive::LoadOTIOTask - - Failed to load OpenTimelineIO from file "%1" - No se pudo cargar OpenTimelineIO desde el archivo "%1" - - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - Elemento raíz de OpenTimelineIO desconocido - - - - Sequence %1 - Secuencia %1 - - - - Failed to load clip - Error al cargar el clip - - - - olive::MainMenu - - - &Save '%1' - &Guardar '%1' - - - - Save '%1' &As - Guardar '%1' &Como - - - Close '%1' - Cerrar '%1' - - - Close All Except '%1' - Cerrar Todo Excepto '%1' - - - - &Save Project - &Guardar Proyecto - - - - Save Project &As - G&uardar Proyecto Como - - - Close Project - Cerrar Proyecto - - - Close All Except Current Project - Cerrar todo Excepto elProyecto Actual - - - - (None) - (Nada) - - - - &File - &Archivo - - - - &New - &Nuevo - - - - &Open Project - &Abrir Proyecto - - - - Open &Recent - Abrir &Reciente - - - - &Clear Recent List - &Limpiar lista - - - Sa&ve All Projects - Guardar &Todos los Proyectos - - - - &Import... - &Importar... - - - - &Export - &Exportar - - - - &Media... - &Medios... - - - &Project Properties... - &Propiedades del Proyecto... - - - Close All Projects - Cerrar Todos los Proyectos - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - 👁 - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - Izquierda - - - - Space - - - - - Shift+Space - - - - - Right - Derecha - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation > Elemento +raíz +de +OpenTimelineIO +desconocido < /translation> +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > Secuencia % 1 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation > Error +al +cargar +el +clip < /translation> +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation > & Guardar & apos; +% +1 & apos; + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > Guardar & apos; +% +1 & apos; +& +Como < /translation> +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > Cerrar & apos; +% +1 & apos; + +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "vanished" > Cerrar +Todo +Excepto & apos; +% +1 & apos; + +< /message> +< message > + + & Save +Project < /source> +< translation > & Guardar +Proyecto < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation > G & uardar +Proyecto +Como < /translation> +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > Cerrar +Proyecto < /translation> +< /message> +< message > +Close +All +Except +Current +Project < /source> +< translation +type = "vanished" > Cerrar +todo +Excepto +elProyecto +Actual < /translation> +< /message> +< message > + +(None) < /source> +< translation > (Nada) < /translation> +< /message> +< message > + + & File < /source> +< translation > & Archivo < /translation> +< /message> +< message > + + & New < /source> +< translation > & Nuevo < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation > & Abrir +Proyecto < /translation> +< /message> +< message > + +Open & Recent < /source> +< translation > Abrir & Reciente < /translation> +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > & Limpiar +lista < /translation> +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > Guardar & Todos +los +Proyectos < /translation> +< /message> +< message > + + & Import +... + +< translation > & Importar +... + +< /message> +< message > + + & Export < /source> +< translation > & Exportar < /translation> +< /message> +< message > + + & Media +... + +< translation > & Medios +... + +< /message> +< message > + & Project +Properties +... + +< translation +type = "vanished" > & Propiedades +del +Proyecto +... + +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > Cerrar +Todos +los +Proyectos < /translation> +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" >👁 +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > Izquierda < /translation> +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > Derecha < /translation> +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" >↔ +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/fr_FR.ts b/app/ts/fr_FR.ts index 216e9963d..74aae6363 100644 --- a/app/ts/fr_FR.ts +++ b/app/ts/fr_FR.ts @@ -1,3906 +1,7457 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Mono - - - - Stereo - Stéréo - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Inconnu (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Impossible de charger les paramètres - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Mono < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Stéréo < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Inconnu(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Impossible +de +charger +les +paramètres < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - Impossible de charger les paramètres. Cette session utilisera les paramètres par défaut. +% 1 < /source> +< translation > Impossible +de +charger +les +paramètres.Cette +session +utilisera +les +paramètres +par +défaut. -%1 - - - - Error saving settings - Impossible de sauvegarder les paramètres - - - - Failed to save application settings. The application may lack write permissions for this location. - Impossible de sauvegarder les paramètres de l'application. L'application ne doit pas avoir les droits d'écritures pour ce répertoire. - - - - Footage - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - Filename: %1 - Nom du fichier: %1 - - - This footage is not valid for use - Ce média ne peut être utilisé - - - - ImportTool - - - Don't ask me again - Ne plus me demander - - - - No Active Sequence - Aucune séquence active - - - - No sequence is currently open. Would you like to create one? - Aucune séquence n'est actuellement ouverte. Souhaitez vous en créer une nouvelle ? - - - - Automatically Detect Parameters From Footage - Détecter automatiquement les paramètres du média - - - - Set Parameters Manually - Définir les paramètres manuellement - - - - MoveItemCommand - - Move Item - Déplacer un élement - - - - NodeFactory - - - None - Aucune - - - - NodeValue - - - None - Aucune - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - Couleur - - - - Matrix - - - - - Text - Texte - - - - Font - Police - - - - File - Fichier - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Bézier - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - Inconnu - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - Sortie - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Modifier %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Modifier les paramètres - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Sequence - - %1 FPS - %1 FPS - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - Barres - - - - Shape - - - - - Solid - - - - - Title - Titre - - - - Tone - Ton - - - - Subtitle - - - - - Unknown - Inconnu - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 144p {1/%1?} - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - Inconnu (0x%1) - - - - %1 FPS - %1 FPS - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - Afficher cette aide - - - - Show application version - - - - - Start in full-screen mode - Démarrer en plein écran - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - Projet à ouvrir au démarrage - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > Impossible +de +sauvegarder +les +paramètres < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > Impossible +de +sauvegarder +les +paramètres +de +l & apos; +application.L & apos; +application +ne +doit +pas +avoir +les +droits +d & apos; +écritures +pour +ce +répertoire. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "vanished" > % 1 +Hz < /translation> +< /message> +< message > +Filename +: % +1 < /source> +< translation +type = "vanished" > Nom +du +fichier: % +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "vanished" > Ce +média +ne +peut +être +utilisé < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > Ne +plus +me +demander < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation > Aucune +séquence +active < /translation> +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation > Aucune séquence +n & apos; +est +actuellement +ouverte.Souhaitez +vous +en +créer +une +nouvelle ? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > Détecter +automatiquement +les +paramètres +du +média < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > Définir +les +paramètres +manuellement < /translation> +< /message> +< /context> +< context > +MoveItemCommand < /name> +< message > +Move +Item < /source> +< translation +type = "vanished" > Déplacer +un +élement < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > Aucune < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > Aucune < /translation> +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Couleur < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > Texte < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > Police < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > Fichier < /translation> +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Inconnu < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > Sortie < /translation> +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Modifier % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Modifier +les +paramètres < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + + < /message> + < /context> + < context > + Sequence < /name> + < message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > Barres < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Title < /source> +< translation > Titre < /translation> +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > Ton < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Inconnu < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 1 / % 1 ? +} + +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > Inconnu(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > % 1 +FPS < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > Afficher +cette +aide < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > Démarrer +en +plein +écran < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > Projet +à +ouvrir +au +démarrage < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Préréglage +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation > À +Propos % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +est +un +logiciel +de +montage +non - linéaire.Ce +logiciel +est +libre +et +protégé +par +la +licence +GNU +GPL. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > L & apos; +équipe +d & apos; +Olive +vous +informe +que +le +code +source +d & apos; +Olive +est +disponible +au +téléchargement +sur +son +site +Web. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation > Rechercher +une +action… +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio < /source> +< translation +type = "obsolete" > Audio < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > Moniteur +audio < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + +Length < /source> +< translation > Longueur < /translation> +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > Flou < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrée < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Centrer < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrée < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Boucle < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > Aucune < /translation> +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > Rouge < /translation> +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Vert < /translation> +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Bleu < /translation> +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrée < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Vert < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Bleu < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > Couleur < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > (aucun) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Red < /source> +< translation > Rouge < /translation> +< /message> +< message > + +Green < /source> +< translation > Vert < /translation> +< /message> +< message > + +Blue < /source> +< translation > Bleu < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > Prévisualiser < /translation> +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrée < /translation> +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Display < /source> +< translation > Affichage < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Préréglage: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - À Propos %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive est un logiciel de montage non-linéaire. Ce logiciel est libre et protégé par la licence GNU GPL. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - L'équipe d'Olive vous informe que le code source d'Olive est disponible au téléchargement sur son site Web. - - - - olive::ActionSearch - - - Search for action... - Rechercher une action… - - - - olive::AudioInput - - Audio - Audio - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - Moniteur audio - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bézier - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - Longueur - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - Flou - - - - Blurs an image. - - - - - Input - Entrée - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - Centrer - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - Entrée - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - Boucle - - - - None - Aucune - - - - Clamp - - - - - olive::ColorCoding - - - Red - Rouge - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - Vert - - - - Cyan - - - - - Teal - - - - - Blue - Bleu - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - Entrée - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - Vert - - - - Blue - Bleu - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Couleur - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - (aucun) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - Rouge - - - - Green - Vert - - - - Blue - Bleu - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - Prévisualiser - - - - Input - Entrée - - - - Reference - - - - - Display - Affichage - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - Nouveau dossier - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - - - Error - Erreur - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation > Nouveau +dossier < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Error < /source> +< translation > Erreur < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > Enregistrer +ce +projet +sous < /translation> +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation > Enregistrer < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > Tout +enregistrer < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > Ne +pas +enregistrer < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translation +type = "obsolete" > Ne +pas +tout +enregistrer < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > Ouvrir +un +projet < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::CrashHandlerDialog < /name> + < message > + Olive < /source> + < translation +type = "vanished" > Olive < /translation> + < /message> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "vanished" > Nous +sommes +désolés.Olive +a +planté.Aidez +nous +à +le +corriger +en +envoyant +un +rapport +d & apos; +erreur. < /translation> +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation > Décrivez +ce +que +vous +étiez +en +train +de +faire +en +y +mettant +le +plus +de +détails +possible.Si +vous +le +pouvez, indiquez +les +étapes +à +faire +pour +reproduire +ce +plantage. < /translation> +< /message> +< message > + + Crash +Report: +< translation > Rapport +d & apos; +erreur: +< /message> +< message > + + Send +Error +Report < /source> +< translation > Envoyer +le +rapport +d & apos; +erreur < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > Ne +pas +envoyer < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > Veuillez +patienter +pendant +que +le +rapport +d & apos; +erreur +se +génère +... + +< /message> +< message > + + Upload +Failed < /source> +< translation > Téléversement +échoué < /translation> +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > + < /message> + < message > + Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "vanished" > Impossible +d & apos; +envoyer +le +rapport +d & apos; +erreur.Veuillez +réessayer +ultérieurement. < /translation> +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "vanished" > Aucun +résumé +de +plantage < /translation> +< /message> +< message > +Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "vanished" > Êtes - vous +sûr(e) +de +vouloir +envoyer +ce +rapport +d & apos; +erreur +sans +résumé +de +plantage ? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation > À +gauche < /translation> +< /message> +< message > + + Top < /source> + < translation > En +haut < /translation> +< /message> +< message > + + Right < /source> + < translation > À +droite < /translation> +< /message> +< message > + + Bottom < /source> + < translation > En +bas < /translation> +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > Éditeur +de +courbes < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation > Zoomer +pour +adapter < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > Linéaire < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + +Hold < /source> +< translation > Maintenir < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrée < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Vert < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Bleu < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Couleur < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation > % 1 +GB < /translation> +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrée < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > Affichage < /translation> +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Affichage < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Couleur < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Opacité < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > Écoulé +: % +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > Restant +: % +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Avancé < /translation> +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > Format +de +pixel: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > Codec +: + +< /message> +< message > + + Sample +Rate: +< translation > Taux +d & apos; +échantillonnage: +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation > Format +: + +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + H +.264 < /source> +< translation > H +.264 < /translation> +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > H +.265 < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +ProRes < /source> +< translation > ProRes < /translation> +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +MP2 < /source> +< translation > MP2 < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +AAC < /source> +< translation > AAC < /translation> +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation > PCM(Non +compressé +) + +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Inconnu < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > Nom +de +fichier: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation > Préréglage +: + +< /message> +< message > + + Range +: + +< translation > Plage +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation > Séquence +entière < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > Du +point +d & apos; +entrée +au +point +de +sortie < /translation> +< /message> +< message > + + Format +: + +< translation > Format +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Vidéo < /translation> +< /message> +< message > + +Audio < /source> +< translation > Audio < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > Exporter < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Annuler < /translation> +< /message> +< message > + +Preview < /source> +< translation > Prévisualiser < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Par +défaut < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation > Nom +de +fichier +invalide < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation > Ce nom +de +fichier +doit +contenir +l & apos; +extension & quot; +% +1 & quot; +. +Voulez +vous +l & apos; +ajouter +automatiquement ? +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + Matroska +Video < /source> +< translation > Vidéo +Matroska < /translation> +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > Vidéo +MPEG - 4 < /translation> +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +QuickTime < /source> +< translation > QuickTime < /translation> +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > MP3 < /translation> +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Inconnu < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Vidéo < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > Général < /translation> +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > Largeur +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > Hauteur +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > Ajuster < /translation> +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > Images +par +seconde : +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > Ratio +des +pixels : +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > Entrelacement +: + +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Codec +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Avancé < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Entrée < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > Dossier < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Vidéo < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Inconnu < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > Nom +du +fichier: % +1 < /translation> +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > & quot; +% +1 & quot; +Propriétés < /translation> +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Nom +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > Pistes +: + +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Inconnu < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > Parcourir < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "obsolete" > Tous +les +fichiers < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > Taille +du +fichier +cible(Mo) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > Aucun(Progressif) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + +Linear < /source> +< translation > Linéaire < /translation> +< /message> +< message > + +Hold < /source> +< translation > Maintenir < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linéaire < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Maintenir < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > P & ropriétés < /translation> +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > Linéaire < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > Bézier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > Maintenir < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - Enregistrer ce projet sous - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - Enregistrer - - - Save All - Tout enregistrer - - - - Don't Save - Ne pas enregistrer - - - Don't Save All - Ne pas tout enregistrer - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - Ouvrir un projet - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - Nous sommes désolés. Olive a planté. Aidez nous à le corriger en envoyant un rapport d'erreur. - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - Décrivez ce que vous étiez en train de faire en y mettant le plus de détails possible. Si vous le pouvez, indiquez les étapes à faire pour reproduire ce plantage. - - - - Crash Report: - Rapport d'erreur: - - - - Send Error Report - Envoyer le rapport d'erreur - - - - Don't Send - Ne pas envoyer - - - - Waiting for crash report to be generated... - Veuillez patienter pendant que le rapport d'erreur se génère... - - - - Upload Failed - Téléversement échoué - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - Failed to send error report. Please try again later. - Impossible d'envoyer le rapport d'erreur. Veuillez réessayer ultérieurement. - - - No Crash Summary - Aucun résumé de plantage - - - Are you sure you want to send an error report with no crash summary? - Êtes-vous sûr(e) de vouloir envoyer ce rapport d'erreur sans résumé de plantage ? - - - - olive::CropDistortNode - - - Texture - - - - - Left - À gauche - - - - Top - En haut - - - - Right - À droite - - - - Bottom - En bas - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - Éditeur de courbes - - - - olive::CurveView - - - Zoom to Fit - Zoomer pour adapter - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Linéaire - - - - Bezier - Bézier - - - - Hold - Maintenir - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - Entrée - - - - Key Color - - - - - Green - Vert - - - - Blue - Bleu - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - Couleur - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - %1 GB - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - Entrée - - - - Display - Affichage - - - - View - Affichage - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - Couleur - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Opacité - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - Écoulé: %1 - - - - Remaining: %1 - Restant: %1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Avancé - - - - Pixel - - - - - Pixel Format: - Format de pixel: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Codec: - - - - Sample Rate: - Taux d'échantillonnage: - - - - Channel Layout: - - - - - Format: - Format: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - DNxHD - - - - H.264 - H.264 - - - - H.264 RGB - - - - - H.265 - H.265 - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - ProRes - ProRes - - - - Cineform - - - - - TIFF - TIFF - - - - MP2 - MP2 - - - - MP3 - MP3 - - - - AAC - AAC - - - - PCM (Uncompressed) - PCM (Non compressé) - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - Inconnu - - - - olive::ExportDialog - - - Filename: - Nom de fichier: - - - - Browse for exported file filename - - - - - Preset: - Préréglage: - - - - Range: - Plage: - - - - Entire Sequence - Séquence entière - - - - In to Out - Du point d'entrée au point de sortie - - - - Format: - Format: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - Vidéo - - - - Audio - Audio - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Exporter - - - - Cancel - Annuler - - - - Preview - Prévisualiser - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - Default - Par défaut - - - - Last Used - - - - - - - Invalid filename - Nom de fichier invalide - - - - The filename must contain the extension "%1". Would you like to append it automatically? - Ce nom de fichier doit contenir l'extension "%1". Voulez vous l'ajouter automatiquement? - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - DNxHD - - - - Matroska Video - Vidéo Matroska - - - - MPEG-4 Video - Vidéo MPEG-4 - - - - MPEG-4 Audio - - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - TIFF - TIFF - - - - QuickTime - QuickTime - - - - Wave Audio - - - - - AIFF - - - - - MP3 - MP3 - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - Inconnu - - - - olive::ExportFormatComboBox - - - Video - Vidéo - - - - Audio - Audio - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - Général - - - - Width: - Largeur : - - - - Height: - Hauteur : - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - Ajuster - - - - Stretch - - - - - Crop - - - - - Frame Rate: - Images par seconde : - - - - Pixel Aspect Ratio: - Ratio des pixels : - - - - Interlacing: - Entrelacement : - - - - Quality: - - - - - Codec - - - - - Codec: - Codec : - - - - Advanced - Avancé - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - Entrée - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - Dossier - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - %1: Subtitle - - - - - Video - Vidéo - - - - Audio - Audio - - - - Subtitle - - - - - Unknown - Inconnu - - - - Filename: %1 - Nom du fichier: %1 - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - "%1" Propriétés - - - - Name: - Nom : - - - - Tracks: - Pistes : - - - - Subtitles - - - - - Unknown - Inconnu - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - Parcourir - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Tous les fichiers - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Taille du fichier cible (Mo) : - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Aucun (Progressif) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Linéaire - - - - Hold - Maintenir - - - - Bezier - Bézier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Linéaire - - - - Bezier - Bézier - - - - Hold - Maintenir - - - - P&roperties - P&ropriétés - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Linéaire - - - Bezier - Bézier - - - Hold - Maintenir - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - &Enregistrer '%1' - - - - Save '%1' &As - Enregistrer '%1' &sous - - - Close '%1' - Fermer '%1' - - - - &Save Project - &Enregistrer le projet - - - - Save Project &As - Enregistrer le projet &sous - - - Close Project - Fermer le projet - - - - (None) - (aucun) - - - - &File - &Fichier - - - - &New - &Nouveau - - - - &Open Project - &Ouvrir un projet - - - - Open &Recent - Ouvrir un projet &récent - - - - &Clear Recent List - Effacer la liste des projets récents - - - Sa&ve All Projects - Enreg&istrer tous les projets - - - - &Import... - &Importer… - - - - &Export - &Exporter - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - M - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - À gauche - - - - Space - - - - - Shift+Space - - - - - Right - À droite - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - J - - - - K - - - - - L - L - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > & Enregistrer & apos; +% +1 & apos; + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > Enregistrer & apos; +% +1 & apos; +& +sous < /translation> +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > Fermer & apos; +% +1 & apos; + +< /message> +< message > + + & Save +Project < /source> +< translation > & Enregistrer +le +projet < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation > Enregistrer +le +projet & sous < /translation> +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > Fermer +le +projet < /translation> +< /message> +< message > + +(None) < /source> +< translation > (aucun) < /translation> +< /message> +< message > + + & File < /source> +< translation > & Fichier < /translation> +< /message> +< message > + + & New < /source> +< translation > & Nouveau < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation > & Ouvrir +un +projet < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation > Ouvrir +un +projet & récent < /translation> +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > Effacer +la +liste +des +projets +récents < /translation> +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > Enreg & istrer +tous +les +projets < /translation> +< /message> +< message > + + & Import +... + +< translation > & Importer… +< /message> +< message > + + & Export < /source> +< translation > & Exporter < /translation> +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > M < /translation> +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > À +gauche < /translation> +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > À +droite < /translation> +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > J < /translation> +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > L < /translation> +< /message> +< message > + + ` diff --git a/app/ts/hr_HR.ts b/app/ts/hr_HR.ts index 32596357e..50cdf0b97 100644 --- a/app/ts/hr_HR.ts +++ b/app/ts/hr_HR.ts @@ -1,3817 +1,7105 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Mono - - - - Stereo - Stereo - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Nepoznato (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Greška pri učitavanju postavki - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Mono < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Stereo < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Nepoznato(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Greška +pri +učitavanju +postavki < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - “Sesija” might not be the most adequate term for “session” - Neuspješno učitavanje postavki aplikacije. Ova sesija će koristiti zadane postavke. +% 1 < /source> +< translatorcomment >“Sesija” might +not +be +the +most +adequate +term +for “ +session” +< translation > Neuspješno +učitavanje +postavki +aplikacije.Ova +sesija +će +koristiti +zadane +postavke. -%1 - - - - Error saving settings - Greška pri spašavanju postavki - - - - Failed to save application settings. The application may lack write permissions for this location. - Neuspješno spašavanje postavki aplikacije. Aplikaciji možda nedostaju dopuštenja za pisanje u ovoj lokaciji. - - - - Footage - - %1 Hz - %1 Hz - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - - - - - Matrix - - - - - Text - - - - - Font - - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Promijeni %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Uredi parametre - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - - - - - Shape - - - - - Solid - - - - - Title - - - - - Tone - - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 1/%1 - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - Nepoznato (0x%1) - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > Greška +pri +spašavanju +postavki < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > Neuspješno +spašavanje +postavki +aplikacije.Aplikaciji +možda +nedostaju +dopuštenja +za +pisanje +u +ovoj +lokaciji. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +Hz < /source> +< translation +type = "obsolete" > % 1 +Hz < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Promijeni % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Uredi +parametre < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > Nepoznato(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + +About % 1 < /source> +< translation > O % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +je +nelinearni +video +uređivač.Ovaj +softver +je +slobodan +i +zaštićen +GNU +GPL - om. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > Olive +tim +je +pod +obavezom +da +obavijesti +korisnike +da +je +Olive - ov +izvorni +kod +dostupan +za +preuzimanje +sa +njegove +web +stranice. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - O %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive je nelinearni video uređivač. Ovaj softver je slobodan i zaštićen GNU GPL-om. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive tim je pod obavezom da obavijesti korisnike da je Olive-ov izvorni kod dostupan za preuzimanje sa njegove web stranice. - - - - olive::ActionSearch - - - Search for action... - - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - - - Error - - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - - - - - Right - - - - - Bottom - - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - - - - - Bezier - - - - - Hold - - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - - - - - Pixel - - - - - Pixel Format: - - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - - - - - Sample Rate: - - - - - Channel Layout: - - - - - Format: - - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - - - - - Browse for exported file filename - - - - - Preset: - - - - - Range: - - - - - Entire Sequence - - - - - In to Out - - - - - Format: - - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - - - - - Audio - - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - - - - - Cancel - - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - - Default - - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - - - - - Audio - - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - - - - - Width: - - - - - Height: - - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - - - - - Stretch - - - - - Crop - - - - - Frame Rate: - - - - - Pixel Aspect Ratio: - - - - - Interlacing: - - - - - Quality: - - - - - Codec - - - - - Codec: - - - - - Advanced - - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - - %1: Subtitle - - - - - Video - - - - - Audio - - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - - - - - Tracks: - - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - - - - - Hold - - - - - Bezier - - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - - - - - Bezier - - - - - Hold - - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - - - - - Save Project &As - - - - - (None) - - - - - &File - - - - - &New - - - - - &Open Project - - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/id_ID.ts b/app/ts/id_ID.ts index cf8302ca3..c4c47094b 100644 --- a/app/ts/id_ID.ts +++ b/app/ts/id_ID.ts @@ -1,3826 +1,7143 @@ - - - + + + - AudioParams - - - %1 Hz - - - - - Mono - Mono - - - - Stereo - Stereo - - - - 2.1 - - - - - 5.1 - - - - - 7.1 - - - - - - Unknown (0x%1) - - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Mono < /source> + < translation +type = "unfinished" > Mono < /translation> +< /message> +< message > + + Stereo < /source> + < translation +type = "unfinished" > Stereo < /translation> +< /message> +< message > + + 2.1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 5.1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 7.1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - Warna - - - - Matrix - - - - - Text - Teks - - - - Font - Fon - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Kurva Bezier - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Ubah %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Edit parameter - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - - - - - Shape - - - - - Solid - - - - - Title - Judul - - - - Tone - Nada - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Warna < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > Teks < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > Fon < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Kurva +Bezier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Ubah % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Edit +parameter < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > Judul < /translation> +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > Nada < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "obsolete" > Olive +adalah +aplikasi +pengedit +video +yang +bersifat +non - linier.Aplikasi +ini +bebas, gratis, dan +terlindungi +GNU +GPL. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "obsolete" > Olive +Team +berkewajiban +memberitahu +pengguna +bahwa +kode +sumber +aplikasi +ini +dapat +diunduh +dari +situs +resminya. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > Cari +Aksi +... + +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Kurva +Bezier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > Panjang < /translation> +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Tengah < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Putar +secara +Berulang < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > Warna < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive adalah aplikasi pengedit video yang bersifat non-linier. Aplikasi ini bebas, gratis, dan terlindungi GNU GPL. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive Team berkewajiban memberitahu pengguna bahwa kode sumber aplikasi ini dapat diunduh dari situs resminya. - - - - olive::ActionSearch - - - Search for action... - Cari Aksi... - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Kurva Bezier - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - Panjang - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - Tengah - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - Putar secara Berulang - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Warna - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - Folder Baru - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - Save Project - Simpan Proyek - - - - - Error - - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > Folder +Baru < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Save +Project < /source> +< translation +type = "obsolete" > Simpan +Proyek < /translation> +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > Buka +Proyek < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > Atas < /translation> +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > Bawah < /translation> +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linier < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Kurva +Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Tahan < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Warna < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Tampilan < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Warna < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Pengaturan +Lanjut < /translation> +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > Bentuk +piksel: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > Jumlah +thread / utas +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > Laju +sampel: +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > Nama +file: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > Sepanjang +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > Seluruh +rangkaian < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > Masuk +hingga +Keluar < /translation> +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > Ekspor < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Batalkan < /translation> +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Nama +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > Lebar +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > Tinggi +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > Pas < /translation> +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > Rasio +aspek +piksel: +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > Mode +interlace: +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Pengaturan +Lanjut < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Nama +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > Daftar +trek: +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > Telusur < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "obsolete" > Semua +file < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > Ukuran +File +yang +Ditargetkan(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > Tidak +ada(Progresif) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Tahan < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Kurva +Bezier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linier < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Kurva +Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Tahan < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > Linier < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > Kurva +Bezier < /translation> +< /message> +< message > +Hold < /source> +< translation +type = "obsolete" > Tahan < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - Buka Proyek - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - Atas - - - - Right - - - - - Bottom - Bawah - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Linier - - - - Bezier - Kurva Bezier - - - - Hold - Tahan - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - Warna - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - Tampilan - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - Warna - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Pengaturan Lanjut - - - - Pixel - - - - - Pixel Format: - Bentuk piksel: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - Jumlah thread/utas: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Kodek: - - - - Sample Rate: - Laju sampel: - - - - Channel Layout: - - - - - Format: - - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - Nama file: - - - - Browse for exported file filename - - - - - Preset: - - - - - Range: - Sepanjang: - - - - Entire Sequence - Seluruh rangkaian - - - - In to Out - Masuk hingga Keluar - - - - Format: - - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - - - - - Audio - - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Ekspor - - - - Cancel - Batalkan - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - Default - - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - - - - - Audio - - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - Nama: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Kodek: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - - - - - Width: - Lebar: - - - - Height: - Tinggi: - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - Pas - - - - Stretch - - - - - Crop - - - - - Frame Rate: - - - - - Pixel Aspect Ratio: - Rasio aspek piksel: - - - - Interlacing: - Mode interlace: - - - - Quality: - - - - - Codec - - - - - Codec: - Kodek: - - - - Advanced - Pengaturan Lanjut - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - %1: Subtitle - - - - - Video - - - - - Audio - - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - Nama: - - - - Tracks: - Daftar trek: - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - Telusur - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Semua file - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Ukuran File yang Ditargetkan (MB): - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Tidak ada (Progresif) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Linier - - - - Hold - Tahan - - - - Bezier - Kurva Bezier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Linier - - - - Bezier - Kurva Bezier - - - - Hold - Tahan - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Linier - - - Bezier - Kurva Bezier - - - Hold - Tahan - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - &Simpan Proyek - - - - Save Project &As - Simpan Proyek Seba&gai - - - - (None) - - - - - &File - - - - - &New - &Buat - - - - &Open Project - Buka &Proyek - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - &Impor... - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > & Simpan +Proyek < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > Simpan +Proyek +Seba & gai < /translation> +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > & Buat < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > Buka & Proyek < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > & Impor +... + +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/it_IT.ts b/app/ts/it_IT.ts index 243856fa6..950681079 100644 --- a/app/ts/it_IT.ts +++ b/app/ts/it_IT.ts @@ -1,3897 +1,7224 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Mono - - - - Stereo - Stereo - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Sconosciuto (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Mono < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Stereo < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Sconosciuto(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - Nessuno - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - Colore - - - - Matrix - - - - - Text - Testo - - - - Font - Font - - - - File - - - - - Texture - Texture - - - - Samples - Esempi - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Bézier - - - - Video Parameters - Parametri video - - - - Audio Parameters - Parametri audio - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - Sconosciuto - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - Destinazione - - - - %1... - %1... - - - - OlivePluginInstance - - - Change %1 - Modifica %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Modifica parametri - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - Vuoto - - - - Bars - Barre - - - - Shape - - - - - Solid - Solido - - - - Title - Titolo - - - - Tone - Suono - - - - Subtitle - Sottotitoli - - - - Unknown - Sconosciuto - - - - UndoStack - - - Undo %1 - Annulla %1 - - - - Redo %1 - Ripeti %1 - - - - VideoParams - - - Full - Completo - - - - 1/%1 - 1/%1 - - - - 8-bit - 8-bit - - - - 10-bit Packed - - - - - 16-bit Integer - 16-bit intero - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - Sconosciuto (0x%1) - - - - %1 FPS - %1 FPS - - - - Square Pixels (%1) - Pixel quadrati (%1) - - - - NTSC Standard (%1) - NTSC standard (%1) - - - - NTSC Widescreen (%1) - NTSC schermo wide (%1) - - - - PAL Standard (%1) - PAL standard (%1) - - - - PAL Widescreen (%1) - PAL schermo wide (%1) - - - - HD Anamorphic 1080 (%1) - HD anamorfico (%1) - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - Visualizza questo testo della guida - - - - Show application version - Visualizza versione applicazione - - - - Start in full-screen mode - Avvia in modo schermo pieno - - - - Export only (No GUI) - Esporta solo (no GUI) - - - - Override language with file - Sovrascrivi lingua tramite file esterno - - - - qm-file - file-qm - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - Apri progetto ad avvio programma - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > Nessuno < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Color < /source> +< translation > Colore < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Text < /source> +< translation > Testo < /translation> +< /message> +< message > + +Font < /source> +< translation > Font < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > Texture < /translation> +< /message> +< message > + +Samples < /source> +< translation > Esempi < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > Parametri +video < /translation> +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > Parametri +audio < /translation> +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Sconosciuto < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > Destinazione < /translation> +< /message> +< message > + + % 1... < /source> +< translation > % 1... < /translation> +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Modifica % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Modifica +parametri < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > Vuoto < /translation> +< /message> +< message > + +Bars < /source> +< translation > Barre < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Solid < /source> +< translation > Solido < /translation> +< /message> +< message > + +Title < /source> +< translation > Titolo < /translation> +< /message> +< message > + +Tone < /source> +< translation > Suono < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > Sottotitoli < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Sconosciuto < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + +Undo % 1 < /source> +< translation > Annulla % 1 < /translation> +< /message> +< message > + +Redo % 1 < /source> +< translation > Ripeti % 1 < /translation> +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > Completo < /translation> +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + +8 - bit < /source> +< translation > 8 - bit < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation > 16 - bit +intero < /translation> +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > Sconosciuto(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > % 1 +FPS < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation > Pixel +quadrati( % 1 +) + +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > NTSC +standard( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > NTSC +schermo +wide( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > PAL +standard( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > PAL +schermo +wide( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation > HD +anamorfico( % 1 +) + +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > Visualizza +questo +testo +della +guida < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > Visualizza +versione +applicazione < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > Avvia in modo +schermo +pieno < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > Esporta +solo(no +GUI +) + +< /message> +< message > + + Override +language +with file < /source> +< translation > Sovrascrivi lingua +tramite +file +esterno < /translation> +< /message> +< message > + +qm - file < /source> +< translation > file - qm < /translation> +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > Apri +progetto +ad +avvio +programma < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Profilo +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation > Info +su % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "vanished" > Olive +è +un +editor +video +non +lineare +open +source +gratuito.Questo +software +è +concesso in licenza +con +GNU +GPL +Versione +3. < /translation> +< /message> +< message > +<html>Olive +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from < a +href = +& +apos; +https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: + <html>Olive +non +sarebbe +possibile +senza +il +supporto +delle +donazioni +di < a +href = +& +apos; +https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: + + < /context> + < context > + olive::ActionSearch < /name> + < message > + + Search +for action... + +< translation > Cerca +un & apos; +azione +... + +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > +Qt < /source> +< translation +type = "vanished" > Qt < /translation> + < /message> + < message > + Unknown < /source> + < translation +type = "vanished" > Sconosciuto < /translation> +< /message> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > Monitor +audio < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation > Recupero +automatico < /translation> +< /message> +< message > + +Load < /source> +< translation > Carica < /translation> +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation > Lunghezza < /translation> + < /message> + < message > + Media +In < /source> +< translation +type = "vanished" > Ingresso +media < /translation> +< /message> +< message > + + Enabled < /source> + < translation > Abilitato < /translation> + < /message> + < message > + Speed < /source> + < translation +type = "vanished" > Velocità < /translation> + < /message> + < message > + Reverse < /source> + < translation +type = "vanished" > Inverso < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > Sfoca < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > Sfoca +un & apos; +immagine. < /translation> +< /message> +< message > + +Input < /source> +< translation > Ingresso < /translation> +< /message> +< message > + +Method < /source> +< translation > Metodo < /translation> +< /message> +< message > + +Box < /source> +< translation > Riquadro < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > Gaussiano < /translation> +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Radius < /source> +< translation > Raggio < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > Orizzontale < /translation> +< /message> +< message > + +Vertical < /source> +< translation > Verticale < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation > Ripeti +pixel +bordo < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Al +centro < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Ingresso < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > Qualità +: + +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > Ingresso +media < /translation> +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > Velocità < /translation> +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > Inverso < /translation> +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Loop < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > Morsetto < /translation> +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + +Red < /source> +< translation > Rosso < /translation> +< /message> +< message > + +Maroon < /source> +< translation > Marrone < /translation> +< /message> +< message > + +Orange < /source> +< translation > Arancio < /translation> +< /message> +< message > + +Brown < /source> +< translation > Marrone < /translation> +< /message> +< message > + + Yellow < /source> + < translation > Giallo < /translation> + < /message> + < message > + Olive < /source> + < translation +type = "vanished" > Oliva < /translation> +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Lime < /source> +< translation > Lime < /translation> +< /message> +< message > + +Green < /source> +< translation > Verde < /translation> +< /message> +< message > + +Cyan < /source> +< translation > Ciano < /translation> +< /message> +< message > + +Teal < /source> +< translation > Teal < /translation> +< /message> +< message > + +Blue < /source> +< translation > Blu < /translation> +< /message> +< message > + +Navy < /source> +< translation > Navy < /translation> +< /message> +< message > + +Pink < /source> +< translation > Rosa < /translation> +< /message> +< message > + +Purple < /source> +< translation > Viola < /translation> +< /message> +< message > + +Silver < /source> +< translation > Argento < /translation> +< /message> +< message > + +Gray < /source> +< translation > Grigio < /translation> +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > Seleziona +colore < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Ingresso < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Verde < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Blu < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + +Color < /source> +< translation > Colore < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > (Nessuno) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Red < /source> +< translation > Rosso < /translation> +< /message> +< message > + +Green < /source> +< translation > Verde < /translation> +< /message> +< message > + +Blue < /source> +< translation > Blu < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > Anteprima < /translation> +< /message> +< message > + +Input < /source> +< translation > Ingresso < /translation> +< /message> +< message > + +Reference < /source> +< translation > Riferimento < /translation> +< /message> +< message > + +Display < /source> +< translation > Display < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation > Audio +conforme % 1 % 2 < /translation> +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Profilo: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - Info su %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - Olive è un editor video non lineare open source gratuito. -Questo software è concesso in licenza con GNU GPL Versione 3. - - - <html>Olive wouldn't be possible without the support of gracious donations from <a href='https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: - <html>Olive non sarebbe possibile senza il supporto delle donazioni di <a href='https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: - - - - olive::ActionSearch - - - Search for action... - Cerca un'azione... - - - - olive::AudioManager - - Qt - Qt - - - Unknown - Sconosciuto - - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - Monitor audio - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - Recupero automatico - - - - Load - Carica - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bézier - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - Lunghezza - - - Media In - Ingresso media - - - - Enabled - Abilitato - - - Speed - Velocità - - - Reverse - Inverso - - - - olive::BlurFilterNode - - - Blur - Sfoca - - - - Blurs an image. - Sfoca un'immagine. - - - - Input - Ingresso - - - - Method - Metodo - - - - Box - Riquadro - - - - Gaussian - Gaussiano - - - - Directional - - - - - Radial - - - - - Radius - Raggio - - - - Horizontal - Orizzontale - - - - Vertical - Verticale - - - - Repeat Edge Pixels - Ripeti pixel bordo - - - - Direction - - - - - Center - Al centro - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - Ingresso - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - Qualità: - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - Ingresso media - - - - Speed - Velocità - - - - Reverse - Inverso - - - - Maintain Audio Pitch - - - - - - Loop - Loop - - - - None - - - - - Clamp - Morsetto - - - - olive::ColorCoding - - - Red - Rosso - - - - Maroon - Marrone - - - - Orange - Arancio - - - - Brown - Marrone - - - - Yellow - Giallo - - - Olive - Oliva - - - - Oak - - - - - Lime - Lime - - - - Green - Verde - - - - Cyan - Ciano - - - - Teal - Teal - - - - Blue - Blu - - - - Navy - Navy - - - - Pink - Rosa - - - - Purple - Viola - - - - Silver - Argento - - - - Gray - Grigio - - - - olive::ColorDialog - - - Select Color - Seleziona colore - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - Ingresso - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - Verde - - - - Blue - Blu - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Colore - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - (Nessuno) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - Rosso - - - - Green - Verde - - - - Blue - Blu - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - Anteprima - - - - Input - Ingresso - - - - Reference - Riferimento - - - - Display - Display - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - Audio conforme %1 %2 - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - Nuova cartella - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - - - Error - Errore - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation > Nuova +cartella < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Renamed %1 Node(s) - - - - - OpenTimelineIO - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Error < /source> +< translation > Errore < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation > Apri +progetto < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Texture < /translation> +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + +Texture < /source> +< translation > Texture < /translation> +< /message> +< message > + + Left < /source> + < translation > A +sinistra < /translation> +< /message> +< message > + + Top < /source> + < translation > In +alto < /translation> +< /message> +< message > + + Right < /source> + < translation > A +destra < /translation> +< /message> +< message > + + Bottom < /source> + < translation > In +basso < /translation> +< /message> +< message > + +Feather < /source> +< translation > Piuma < /translation> +< /message> +< message > + +Crop < /source> +< translation > Ritaglia < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation > Ritaglia +i +bordi +di +un & apos; +immagine. < /translation> +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > Dissolvenza +incrociata < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation > Transizione +fluida +tra +due +clip. < /translation> +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > Editor +curve < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation > Zoom +per +adattare < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation > Zoom +per +adattare +selezionato < /translation> +< /message> +< message > + + Reset +Zoom < /source> +< translation > Ripristina +zoom < /translation> +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > Lineare < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + +Hold < /source> +< translation > Costante < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Ingresso < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > Verde < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Blu < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > Metodo < /translation> +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Colore < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Ingresso < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > Display < /translation> +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Visualizza < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Texture < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Colore < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Opacità < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > Trascorso +: % +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > Rimanente +: % +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + +Advanced < /source> +< translation > Avanzate < /translation> +< /message> +< message > + +Pixel < /source> +< translation > Pixel < /translation> +< /message> +< message > + + Pixel +Format: +< translation > Formato +pixel: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Performance < /source> +< translation > Prestazioni < /translation> +< /message> +< message > + + Threads +: + +< translation > Thread +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > Codec +: + +< /message> +< message > + + Sample +Rate: +< translation > Freq.campionamento +: + +< /message> +< message > + + Channel +Layout: +< translation > Layout +canali: +< /message> +< message > + + Format +: + +< translation > Formato +: + +< /message> +< message > + + Bit +Rate: +< translation > Bit +rate: +< /message> +< message > + + % 1 +kbps < /source> +< translation > % 1 +kbps < /translation> +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + H +.264 < /source> +< translation > H +.264 < /translation> +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > H +.265 < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +ProRes < /source> +< translation > ProRes < /translation> +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +MP2 < /source> +< translation > MP2 < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +AAC < /source> +< translation > AAC < /translation> +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation > PCM(non +compresso +) + +< /message> +< message > + +FLAC < /source> +< translation > FLAC < /translation> +< /message> +< message > + +Opus < /source> +< translation > Opus < /translation> +< /message> +< message > + +Vorbis < /source> +< translation > Vorbis < /translation> +< /message> +< message > + +VP9 < /source> +< translation > VP9 < /translation> +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Sconosciuto < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > Nome +file: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation > Profilo +: + +< /message> +< message > + + Range +: + +< translation > Intervallo +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation > Sequenza +completa < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > Zona +selezionata < /translation> +< /message> +< message > + + Format +: + +< translation > Formato +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Video < /translation> +< /message> +< message > + +Audio < /source> +< translation > Audio < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > Esporta < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Annulla < /translation> +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > Anteprima < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Predefinito < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + Matroska +Video < /source> +< translation > Matroska +Video < /translation> +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > Video +MPEG - 4 < /translation> +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +QuickTime < /source> +< translation > QuickTime < /translation> +< /message> +< message > + + Wave +Audio < /source> +< translation > Wave +Audio < /translation> +< /message> +< message > + +AIFF < /source> +< translation > AIFF < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +FLAC < /source> +< translation > FLAC < /translation> +< /message> +< message > + +Ogg < /source> +< translation > Ogg < /translation> +< /message> +< message > + +WebM < /source> +< translation > WebM < /translation> +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Sconosciuto < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Audio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > Sottotitoli < /translation> +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Nome +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Codec +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::ExportVideoTab < /name> + < message > + Basic < /source> + < translation +type = "vanished" > Base < /translation> +< /message> +< message > + + General < /source> + < translation +type = "unfinished" > Generale < /translation> +< /message> +< message > + + Width +: + +< translation > Larghezza +: + +< /message> +< message > + + Height +: + +< translation > Altezza +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > Mantieni +rapporto: +< /message> +< message > + + Scaling +Method: +< translation > Metodo +scala: +< /message> +< message > + +Fit < /source> +< translation > Adatta < /translation> +< /message> +< message > + +Stretch < /source> +< translation > Allarga < /translation> +< /message> +< message > + +Crop < /source> +< translation > Ritaglia < /translation> +< /message> +< message > + + Frame +Rate: +< translation > Freq.frame +: + +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > Proporzioni +pixel: +< /message> +< message > + + Interlacing +: + +< translation > Interlacciamento +: + +< /message> +< message > + + Quality +: + +< translation > Qualità +: + +< /message> +< message > + +Codec < /source> +< translation > Codec < /translation> +< /message> +< message > + + Codec +: + +< translation > Codec +: + +< /message> +< message > + +Advanced < /source> +< translation > Avanzate < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation > Apri +cartella < /translation> +< /message> +< message > + + Open +File < /source> +< translation > Apri +file < /translation> +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Ingresso < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > Orizzontale < /translation> +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > Verticale < /translation> +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > % 1 +dB < /translation> +< /message> +< message > + + % 1 % +< translation > % 1 % +< /message> +< message > + + ∞ +< translation >∞ +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation > Nome +file < /translation> +< /message> +< message > +Loop +Mode < /source> +< translation +type = "vanished" > Modo +loop < /translation> +< /message> +< message > +None < /source> +< translation +type = "vanished" > Nessuno < /translation> + < /message> + < message > + Loop < /source> + < translation +type = "vanished" > Loop < /translation> + < /message> + < message > + Clamp < /source> + < translation +type = "vanished" > Morsetto < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation > % 1 +: +immagine - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation > % 1 +: +Video - % 2 +x % 3 < /translation> +< /message> +< message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation > + % 1 +: +audio - % n +canale, +% +2 +Hz < /numerusform> +< numerusform > % 1 +: +audio - % n +canali, +% +2 +Hz < /numerusform> +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Video < /translation> +< /message> +< message > + +Audio < /source> +< translation > Audio < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > Sottotitoli < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Sconosciuto < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation > Nome +file: % +1 < /translation> +< /message> +< message > + + Invalid < /source> + < translation > Non +valido < /translation> +< /message> +< message > + +Media < /source> +< translation > Media < /translation> +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation > Importa +file +video, audio +o +immagini +fisse +nella +composizione. < /translation> +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Nome +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Sconosciuto < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > Nome +file < /translation> +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Browse < /source> +< translation > Sfoglia < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "vanished" > Tutti +i +file < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > Bitrate +destinazione(Mbps) +: + +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > Bitrate +massimo(Mbps) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Due +passaggi < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > Dimensione +file +destinazione(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > Due +passaggi < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + +None(Progressive) < /source> +< translation > Nessuno(progressivo) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + +Linear < /source> +< translation > Lineare < /translation> +< /message> +< message > + +Hold < /source> +< translation > Costante < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Bézier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Lineare < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Costante < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > P & roprietà < /translation> +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > Lineare < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > Bézier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > Costante < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "vanished" > P & roprietà < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - Apri progetto - - - - olive::CornerPinDistortNode - - - Texture - Texture - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - Texture - - - - Left - A sinistra - - - - Top - In alto - - - - Right - A destra - - - - Bottom - In basso - - - - Feather - Piuma - - - - Crop - Ritaglia - - - - Crop the edges of an image. - Ritaglia i bordi di un'immagine. - - - - olive::CrossDissolveTransition - - - Cross Dissolve - Dissolvenza incrociata - - - - Smoothly transition between two clips. - Transizione fluida tra due clip. - - - - olive::CurvePanel - - - Curve Editor - Editor curve - - - - olive::CurveView - - - Zoom to Fit - Zoom per adattare - - - - Zoom to Fit Selected - Zoom per adattare selezionato - - - - Reset Zoom - Ripristina zoom - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Lineare - - - - Bezier - Bézier - - - - Hold - Costante - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - Ingresso - - - - Key Color - - - - - Green - Verde - - - - Blue - Blu - - - - Method - Metodo - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - Colore - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - Ingresso - - - - Display - Display - - - - View - Visualizza - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - Texture - - - - Color - Colore - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Opacità - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - Trascorso: %1 - - - - Remaining: %1 - Rimanente: %1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Avanzate - - - - Pixel - Pixel - - - - Pixel Format: - Formato pixel: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - Prestazioni - - - - Threads: - Thread: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Codec: - - - - Sample Rate: - Freq. campionamento: - - - - Channel Layout: - Layout canali: - - - - Format: - Formato: - - - - Bit Rate: - Bit rate: - - - - %1 kbps - %1 kbps - - - - olive::ExportCodec - - - DNxHD - DNxHD - - - - H.264 - H.264 - - - - H.264 RGB - - - - - H.265 - H.265 - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - ProRes - ProRes - - - - Cineform - - - - - TIFF - TIFF - - - - MP2 - MP2 - - - - MP3 - MP3 - - - - AAC - AAC - - - - PCM (Uncompressed) - PCM (non compresso) - - - - FLAC - FLAC - - - - Opus - Opus - - - - Vorbis - Vorbis - - - - VP9 - VP9 - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - Sconosciuto - - - - olive::ExportDialog - - - Filename: - Nome file: - - - - Browse for exported file filename - - - - - Preset: - Profilo: - - - - Range: - Intervallo: - - - - Entire Sequence - Sequenza completa - - - - In to Out - Zona selezionata - - - - Format: - Formato: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - Video - - - - Audio - Audio - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Esporta - - - - Cancel - Annulla - - - - Preview - Anteprima - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Default - Predefinito - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - DNxHD - - - - Matroska Video - Matroska Video - - - - MPEG-4 Video - Video MPEG-4 - - - - MPEG-4 Audio - - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - TIFF - TIFF - - - - QuickTime - QuickTime - - - - Wave Audio - Wave Audio - - - - AIFF - AIFF - - - - MP3 - MP3 - - - - FLAC - FLAC - - - - Ogg - Ogg - - - - WebM - WebM - - - - SubRip SRT - - - - - Unknown - Sconosciuto - - - - olive::ExportFormatComboBox - - - Video - Video - - - - Audio - Audio - - - - Subtitle - Sottotitoli - - - - olive::ExportSavePresetDialog - - - Name: - Nome: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Codec: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - Basic - Base - - - - General - Generale - - - - Width: - Larghezza: - - - - Height: - Altezza: - - - - Maintain Aspect Ratio: - Mantieni rapporto: - - - - Scaling Method: - Metodo scala: - - - - Fit - Adatta - - - - Stretch - Allarga - - - - Crop - Ritaglia - - - - Frame Rate: - Freq. frame: - - - - Pixel Aspect Ratio: - Proporzioni pixel: - - - - Interlacing: - Interlacciamento: - - - - Quality: - Qualità: - - - - Codec - Codec - - - - Codec: - Codec: - - - - Advanced - Avanzate - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to resample audio - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - - - - Failed to write interleaved packet - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - Apri cartella - - - - Open File - Apri file - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - Ingresso - - - - Horizontal - Orizzontale - - - - Vertical - Verticale - - - - olive::FloatSlider - - - %1 dB - %1 dB - - - - %1% - %1% - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - Nome file - - - Loop Mode - Modo loop - - - None - Nessuno - - - Loop - Loop - - - Clamp - Morsetto - - - - %1: Image - %2x%3 - %1: immagine - %2x%3 - - - - %1: Video - %2x%3 - %1: Video - %2x%3 - - - - %1: Audio - %n Channel(s), %2Hz - - %1: audio - %n canale, %2Hz - %1: audio - %n canali, %2Hz - - - - - %1: Subtitle - - - - - Video - Video - - - - Audio - Audio - - - - Subtitle - Sottotitoli - - - - Unknown - Sconosciuto - - - - Filename: %1 - Nome file: %1 - - - - Invalid - Non valido - - - - Media - Media - - - - Import video, audio, or still image files into the composition. - Importa file video, audio o immagini fisse nella composizione. - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - Nome: - - - - Tracks: - - - - - Subtitles - - - - - Unknown - Sconosciuto - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - Nome file - - - - Actions - - - - - Browse - Sfoglia - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Tutti i file - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - Bitrate destinazione (Mbps): - - - - Maximum Bit Rate (Mbps): - Bitrate massimo (Mbps): - - - - Two-Pass - Due passaggi - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Dimensione file destinazione (MB): - - - - Two-Pass - Due passaggi - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Nessuno (progressivo) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Lineare - - - - Hold - Costante - - - - Bezier - Bézier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Lineare - - - - Bezier - Bézier - - - - Hold - Costante - - - - P&roperties - P&roprietà - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Lineare - - - Bezier - Bézier - - - Hold - Costante - - - P&roperties - P&roprietà - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - &Salva '%1' - - - - Save '%1' &As - Salv&a '%1' come - - - Close '%1' - Chiudi '%1' - - - Close All Except '%1' - Chiudi tutto eccetto '%1' - - - - &Save Project - &Salva progetto - - - - Save Project &As - S&alva progetto con nome - - - Close Project - Chiudi progetto - - - Close All Except Current Project - Chiudi tutto eccetto progetto attuale - - - - (None) - (Nessuno) - - - - &File - &File - - - - &New - &Nuovo - - - - &Open Project - Apri pr&ogetto - - - - Open &Recent - Apri &recente - - - - &Clear Recent List - Azzera elen&co recenti - - - Sa&ve All Projects - Sal&va tutti i progetti - - - - &Import... - &Importa... - - - - &Export - &Esporta - - - - &Media... - &Media... - - - Close All Projects - Chiudi tutti i progetti - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - M - - - - = - - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - A sinistra - - - - Space - - - - - Shift+Space - - - - - Right - A destra - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - J - - - - K - - - - - L - L - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation > & Salva & apos; +% +1 & apos; + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > Salv & a & apos; +% +1 & apos; +come < /translation> +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > Chiudi & apos; +% +1 & apos; + +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "vanished" > Chiudi +tutto +eccetto & apos; +% +1 & apos; + +< /message> +< message > + + & Save +Project < /source> +< translation > & Salva +progetto < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation > S & alva +progetto +con +nome < /translation> +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > Chiudi +progetto < /translation> +< /message> +< message > +Close +All +Except +Current +Project < /source> +< translation +type = "vanished" > Chiudi +tutto +eccetto +progetto +attuale < /translation> +< /message> +< message > + +(None) < /source> +< translation > (Nessuno) < /translation> +< /message> +< message > + + & File < /source> +< translation > & File < /translation> +< /message> +< message > + + & New < /source> +< translation > & Nuovo < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation > Apri +pr & ogetto < /translation> +< /message> +< message > + +Open & Recent < /source> +< translation > Apri & recente < /translation> +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > Azzera +elen & co +recenti < /translation> +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > Sal & va +tutti +i +progetti < /translation> +< /message> +< message > + + & Import +... + +< translation > & Importa +... + +< /message> +< message > + + & Export < /source> +< translation > & Esporta < /translation> +< /message> +< message > + + & Media +... + +< translation > & Media +... + +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > Chiudi +tutti +i +progetti < /translation> +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > M < /translation> +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > - +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > A +sinistra < /translation> +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > A +destra < /translation> +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > J < /translation> +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > L < /translation> +< /message> +< message > + + ` diff --git a/app/ts/ja_JP.ts b/app/ts/ja_JP.ts index 43f6ee2cc..cbb9868d9 100644 --- a/app/ts/ja_JP.ts +++ b/app/ts/ja_JP.ts @@ -1,4017 +1,7338 @@ - - - + + + - AudioParams - - - %1 Hz - - - - - Mono - モノラル - - - - Stereo - ステレオ - - - - 2.1 - - - - - 5.1 - - - - - 7.1 - - - - - - Unknown (0x%1) - 不明 (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - 設定読み込みエラー - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > +< /message> +< message > + +Mono < /source> +< translation > モノラル < /translation> +< /message> +< message > + +Stereo < /source> +< translation > ステレオ < /translation> +< /message> +< message > + +2.1 < /source> +< translation > +< /message> +< message > + +5.1 < /source> +< translation > +< /message> +< message > + +7.1 < /source> +< translation > +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > 不明(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > 設定読み込みエラー < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - アプリケーション設定の読み込みに失敗しました。 このセッションではデフォルト設定が使用されます。 +% 1 < /source> +< translation > アプリケーション設定の読み込みに失敗しました。 このセッションではデフォルト設定が使用されます。 -%1 - - - - Error saving settings - 設定保存エラー - - - - Failed to save application settings. The application may lack write permissions for this location. - アプリケーション設定の保存に失敗しました。 ファイルの書き込み権限が不足している可能性があります。 - - - - ImportTool - - - Don't ask me again - 次からは確認しない - - - - No Active Sequence - アクティブなシーケンスがありません - - - - No sequence is currently open. Would you like to create one? - シーケンスが開かれていません。作成しますか? - - - - Automatically Detect Parameters From Footage - 映像からパラメータを自動検出 - - - - Set Parameters Manually - パラメータを手動で設定 - - - - NodeCopyPasteWidget - - Error pasting nodes - ノード貼り付けエラー - - - Failed to paste nodes: %1 - ノードの貼り付けに失敗しました: %1 - - - - NodeFactory - - - None - なし - - - - NodeValue - - - None - なし - - - - Integer - 整数型 - - - - Float - 浮動小数点型 - - - - Rational - 分数型 - - - - Boolean - 真偽値型 - - - - Color - - - - - Matrix - マトリクス - - - - Text - テキスト - - - - Font - フォント - - - - File - ファイル - - - - Texture - テクスチャ - - - - Samples - サンプル - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - ベジエ - - - - Video Parameters - ビデオパラメータ - - - - Audio Parameters - オーディオパラメータ - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - 不明 - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - 出力 - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - %1 を変更 - - - - %1 (+%2) - %1(+%2) - - - - Edit Parameters - パラメーターを編集 - - - - PresetManager - - - Save Preset - プリセットを保存 - - - - Set preset name: - プリセット名を設定: - - - - Invalid preset name - 無効なプリセット名 - - - - You must enter a preset name - プリセット名を入力してください - - - - Preset exists - プリセットが存在します - - - - A preset with this name already exists. Would you like to replace it? - その名前のプリセットはすでに存在します。置き換えますか? - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - カスタム比率を入力 ("4:3"、"16/9"等): - - - - Invalid custom ratio - 無効なカスタム比率 - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - アスペクト比"%1"をパースできません。":"または"/"を区切り文字として分数を入力してください。 - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - バー - - - - Shape - - - - - Solid - 塗りつぶし - - - - Title - タイトル - - - - Tone - トーン - - - - Subtitle - 字幕 - - - - Unknown - 不明 - - - - UndoStack - - - Undo %1 - 元に戻す %1 - - - - Redo %1 - やり直し %1 - - - - VideoParams - - - Full - フル - - - - 1/%1 - - - - - 8-bit - 8ビット - - - - 10-bit Packed - - - - - 16-bit Integer - 16ビット整数 - - - - Half-Float (16-bit) - 単精度浮動小数点 - - - - Full-Float (32-bit) - 倍精度浮動小数点 - - - - Unknown (0x%1) - 不明 (0x%1) - - - - %1 FPS - - - - - Square Pixels (%1) - 正方形ピクセル (%1) - - - - NTSC Standard (%1) - NTSC標準 (%1) - - - - NTSC Widescreen (%1) - NTSCワイドスクリーン (%1) - - - - PAL Standard (%1) - PAL標準 (%1) - - - - PAL Widescreen (%1) - PALワイドスクリーン (%1) - - - - HD Anamorphic 1080 (%1) - HDアナモルフィック 1080 (%1) - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - このヘルプテキストを表示 - - - - Show application version - アプリケーションバージョンの表示 - - - - Start in full-screen mode - フルスクリーンモードで起動 - - - - Export only (No GUI) - エクスポートのみ (GUIなし) - - - - Override language with file - 言語をファイルで上書き - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - 起動時に開くプロジェクト - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% +1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > 設定保存エラー < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > アプリケーション設定の保存に失敗しました。 ファイルの書き込み権限が不足している可能性があります。 +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > 次からは確認しない < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation > アクティブなシーケンスがありません < /translation> +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation > シーケンスが開かれていません。作成しますか? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > 映像からパラメータを自動検出 < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > パラメータを手動で設定 < /translation> +< /message> +< /context> +< context > +NodeCopyPasteWidget < /name> +< message > +Error +pasting +nodes < /source> +< translation +type = "vanished" > ノード貼り付けエラー < /translation> + < /message> + < message > + Failed +to +paste +nodes: % +1 < /source> +< translation +type = "vanished" > ノードの貼り付けに失敗しました +: % +1 < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > なし < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + +None < /source> +< translation > なし < /translation> +< /message> +< message > + +Integer < /source> +< translation > 整数型 < /translation> +< /message> +< message > + +Float < /source> +< translation > 浮動小数点型 < /translation> +< /message> +< message > + +Rational < /source> +< translation > 分数型 < /translation> +< /message> +< message > + +Boolean < /source> +< translation > 真偽値型 < /translation> +< /message> +< message > + +Color < /source> +< translation > 色 < /translation> +< /message> +< message > + +Matrix < /source> +< translation > マトリクス < /translation> +< /message> +< message > + +Text < /source> +< translation > テキスト < /translation> +< /message> +< message > + +Font < /source> +< translation > フォント < /translation> +< /message> +< message > + +File < /source> +< translation > ファイル < /translation> +< /message> +< message > + +Texture < /source> +< translation > テクスチャ < /translation> +< /message> +< message > + +Samples < /source> +< translation > サンプル < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation > +< /message> +< message > + + Vector +3 +D < /source> +< translation > +< /message> +< message > + + Vector +4 +D < /source> +< translation > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > ベジエ < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation > ビデオパラメータ < /translation> +< /message> +< message > + + Audio +Parameters < /source> +< translation > オーディオパラメータ < /translation> +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > 不明 < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > 出力 < /translation> +< /message> +< message > + + % 1... < /source> +< translation > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + + Change % 1 < /source> + < translation > % 1 +を変更 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> + < translation > % 1(+ % 2) +< /message> +< message > + + Edit +Parameters < /source> +< translation > パラメーターを編集 < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation > プリセットを保存 < /translation> +< /message> +< message > + + Set +preset +name: +< translation > プリセット名を設定 +: + +< /message> +< message > + + Invalid +preset +name < /source> +< translation > 無効なプリセット名 < /translation> +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation > プリセット名を入力してください < /translation> +< /message> +< message > + + Preset +exists < /source> +< translation > プリセットが存在します < /translation> +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation > その名前のプリセットはすでに存在します。置き換えますか? +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation > カスタム比率を入力( & quot; +4 +: +3 & quot;、& +quot; +16 / 9 & quot; +等 +): + +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation > 無効なカスタム比率 < /translation> +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. +アスペクト比 & quot; +% +1 & quot; +をパースできません。& +quot; +:& +quot; +または & quot; +/"を区切り文字として分数を入力してください。 + +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > 空 < /translation> +< /message> +< message > + +Bars < /source> +< translation > バー < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Solid < /source> +< translation > 塗りつぶし < /translation> +< /message> +< message > + +Title < /source> +< translation > タイトル < /translation> +< /message> +< message > + +Tone < /source> +< translation > トーン < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > 字幕 < /translation> +< /message> +< message > + +Unknown < /source> +< translation > 不明 < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + +Undo % 1 < /source> +< translation > 元に戻す % 1 < /translation> +< /message> +< message > + +Redo % 1 < /source> +< translation > やり直し % 1 < /translation> +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > フル < /translation> +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 8 - bit < /source> + < translation > 8 +ビット < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation > 16 +ビット整数 < /translation> +< /message> +< message > + +Half - Float(16 - bit) < /source> +< translation > 単精度浮動小数点 < /translation> +< /message> +< message > + +Full - Float(32 - bit) < /source> +< translation > 倍精度浮動小数点 < /translation> +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > 不明(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation > 正方形ピクセル( % 1 +) + +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > NTSC標準( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > NTSCワイドスクリーン( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > PAL標準( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > PALワイドスクリーン( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation > HDアナモルフィック +1080( % 1 +) + +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > このヘルプテキストを表示 < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > アプリケーションバージョンの表示 < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > フルスクリーンモードで起動 < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > エクスポートのみ(GUIなし) < /translation> +< /message> +< message > + + Override +language +with file < /source> +< translation > 言語をファイルで上書き < /translation> +< /message> +< message > + +qm - file < /source> +< translation > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > 起動時に開くプロジェクト < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > プリセット +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > 圧縮方式 +: + +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > コンスタントレートファクター < /translation> +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation > % 1 +について < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "vanished" > Oliveは無料のオープンソースノンリニアビデオエディタです。このソフトウェアはGNU +GPL +Version +3 +のもとでライセンスされています。 +< /message> +< message > +<html>Olive +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from < a +href = +& +apos; +https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: + <html><a href = +& +apos; +https://www.patreon.com/olivevideoeditor'>Patreon</a>からの親切な寄付無しにOliveはありませんでした</html>: + + < /context> + < context > + olive::ActionSearch < /name> + < message > + + Search +for action... + +< translation > アクションを検索 < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > +Unknown < /source> +< translation +type = "vanished" > 不明 < /translation> +< /message> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > オーディオモニタ < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + +Auto - Recovery < /source> +< translation > 自動修復 < /translation> +< /message> +< message > + +Load < /source> +< translation > 読み込む < /translation> +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > ベジエ < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > 入力 +: + +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > 出力 +: + +< /message> +< /context> +< context > +olive::Block < /name> +< message > + +Length < /source> +< translation > 長さ < /translation> +< /message> +< message > + + Enabled < /source> + < translation > 有効 < /translation> + < /message> + < message > + Speed < /source> + < translation +type = "vanished" > 速度 < /translation> + < /message> + < message > + Reverse < /source> + < translation +type = "vanished" > 反転 < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > ブラー < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > 画像をぼかします。 +< /message> +< message > + +Input < /source> +< translation > 入力 < /translation> +< /message> +< message > + +Method < /source> +< translation > 方式 < /translation> +< /message> +< message > + +Box < /source> +< translation > ボックス < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > ガウシアン < /translation> +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Radius < /source> +< translation > 半径 < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > 水平 < /translation> +< /message> +< message > + +Vertical < /source> +< translation > 垂直 < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation > エッジピクセルを繰り返す < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > 方向 < /translation> +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > 中央 < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 入力 < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > 品質 +: + +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Clip < /source> +< translation > クリップ < /translation> +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation > メディアソースをタイムベースで示すノードです。 +< /message> +< message > + +Buffer < /source> +< translation > バッファ < /translation> +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > 速度 < /translation> +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > 反転 < /translation> +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > ループ < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > なし < /translation> +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > クランプ < /translation> +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + +Red < /source> +< translation > 赤 < /translation> +< /message> +< message > + +Maroon < /source> +< translation > 焦茶 < /translation> +< /message> +< message > + +Orange < /source> +< translation > オレンジ < /translation> +< /message> +< message > + +Brown < /source> +< translation > 茶 < /translation> +< /message> +< message > + + Yellow < /source> + < translation > 黄 < /translation> + < /message> + < message > + Olive < /source> + < translation +type = "vanished" > オリーブ < /translation> +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Lime < /source> +< translation > 黄緑 < /translation> +< /message> +< message > + +Green < /source> +< translation > 緑 < /translation> +< /message> +< message > + +Cyan < /source> +< translation > 水 < /translation> +< /message> +< message > + +Teal < /source> +< translation > 青緑 < /translation> +< /message> +< message > + +Blue < /source> +< translation > 青 < /translation> +< /message> +< message > + +Navy < /source> +< translation > 藍 < /translation> +< /message> +< message > + +Pink < /source> +< translation > ピンク < /translation> +< /message> +< message > + +Purple < /source> +< translation > 紫 < /translation> +< /message> +< message > + +Silver < /source> +< translation > 銀 < /translation> +< /message> +< message > + +Gray < /source> +< translation > 灰 < /translation> +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > 色選択 < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 入力 < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > 緑 < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > 青 < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation > 色 < /translation> + < /message> + < /context> + < context > + olive::ColorManager < /name> + < message > + Configuration < /source> + < translation +type = "vanished" > 設定 < /translation> + < /message> + < message > + Default +Input < /source> +< translation +type = "vanished" > デフォルト入力 < /translation> + < /message> + < message > + Reference +Space < /source> +< translation +type = "vanished" > レンダリングスペース < /translation> + < /message> + < message > + Scene +Linear < /source> +< translation +type = "vanished" > シーンリニア < /translation> + < /message> + < message > + Compositing +Log < /source> +< translation +type = "vanished" > コンポジットログ < /translation> + < /message> + < message > + (built - in) < /source> + < translation +type = "vanished" > (ビルトイン) < /translation> + < /message> + < message > + Color +Manager < /source> +< translation +type = "vanished" > 色管理 < /translation> + < /message> + < message > + Color +management +configuration +for project. < /source> + < translation type = "vanished" > プロジェクトの色管理設定です。 +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation > 色管理 < /translation> +< /message> +< message > + + Input +: + +< translation > 入力 +: + +< /message> +< message > + + Color +Space: +< translation > 色スペース +: + +< /message> +< message > + + Display +: + +< translation > ディスプレイ +: + +< /message> +< message > + + View +: + +< translation > ビュー +: + +< /message> +< message > + + Look +: + +< translation > ルック +: + +< /message> +< message > + +(None) < /source> +< translation > (なし) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Red < /source> +< translation > 赤 < /translation> +< /message> +< message > + +Green < /source> +< translation > 緑 < /translation> +< /message> +< message > + +Blue < /source> +< translation > 青 < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > プレビュー < /translation> +< /message> +< message > + +Input < /source> +< translation > 入力 < /translation> +< /message> +< message > + +Reference < /source> +< translation > 参照 < /translation> +< /message> +< message > + +Display < /source> +< translation > 表示 < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation > オーディオコンフォーミング中 % 1 +:% +2 < /translation> +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation > オーディオコンフォーミングのためにデコーダーを開くことができませんでした < /translation> +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation > インポートエラー < /translation> +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation > インポートするものがありません < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation > インポート中 +... + +< /message> +< message > + + Import +footage +... + +< translation > フッテージのインポート < /translation> +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - プリセット: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - 圧縮方式: - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - コンスタントレートファクター - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - %1について - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - Oliveは無料のオープンソースノンリニアビデオエディタです。このソフトウェアはGNU GPL Version 3のもとでライセンスされています。 - - - <html>Olive wouldn't be possible without the support of gracious donations from <a href='https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: - <html><a href='https://www.patreon.com/olivevideoeditor'>Patreon</a>からの親切な寄付無しにOliveはありませんでした</html>: - - - - olive::ActionSearch - - - Search for action... - アクションを検索 - - - - olive::AudioManager - - Unknown - 不明 - - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - オーディオモニタ - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - 自動修復 - - - - Load - 読み込む - - - - olive::BezierWidget - - - Center: - - - - - Bezier - ベジエ - - - - In: - 入力: - - - - Out: - 出力: - - - - olive::Block - - - Length - 長さ - - - - Enabled - 有効 - - - Speed - 速度 - - - Reverse - 反転 - - - - olive::BlurFilterNode - - - Blur - ブラー - - - - Blurs an image. - 画像をぼかします。 - - - - Input - 入力 - - - - Method - 方式 - - - - Box - ボックス - - - - Gaussian - ガウシアン - - - - Directional - - - - - Radial - - - - - Radius - 半径 - - - - Horizontal - 水平 - - - - Vertical - 垂直 - - - - Repeat Edge Pixels - エッジピクセルを繰り返す - - - - Direction - 方向 - - - - Center - 中央 - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - 入力 - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - 品質: - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - クリップ - - - - A time-based node that represents a media source. - メディアソースをタイムベースで示すノードです。 - - - - Buffer - バッファ - - - - Media In - - - - - Speed - 速度 - - - - Reverse - 反転 - - - - Maintain Audio Pitch - - - - - - Loop - ループ - - - - None - なし - - - - Clamp - クランプ - - - - olive::ColorCoding - - - Red - - - - - Maroon - 焦茶 - - - - Orange - オレンジ - - - - Brown - - - - - Yellow - - - - Olive - オリーブ - - - - Oak - - - - - Lime - 黄緑 - - - - Green - - - - - Cyan - - - - - Teal - 青緑 - - - - Blue - - - - - Navy - - - - - Pink - ピンク - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - 色選択 - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - 入力 - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - - - - - olive::ColorManager - - Configuration - 設定 - - - Default Input - デフォルト入力 - - - Reference Space - レンダリングスペース - - - Scene Linear - シーンリニア - - - Compositing Log - コンポジットログ - - - (built-in) - (ビルトイン) - - - Color Manager - 色管理 - - - Color management configuration for project. - プロジェクトの色管理設定です。 - - - - olive::ColorSpaceChooser - - - Color Management - 色管理 - - - - Input: - 入力: - - - - Color Space: - 色スペース: - - - - Display: - ディスプレイ: - - - - View: - ビュー: - - - - Look: - ルック: - - - - (None) - (なし) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - プレビュー - - - - Input - 入力 - - - - Reference - 参照 - - - - Display - 表示 - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - オーディオコンフォーミング中 %1:%2 - - - - Failed to open decoder for audio conform - オーディオコンフォーミングのためにデコーダーを開くことができませんでした - - - - olive::Core - - - Import error - インポートエラー - - - - Nothing to import - インポートするものがありません - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - インポート中... - - - - Import footage... - フッテージのインポート - - - - Failed to import footage - フッテージのインポートに失敗 - - - - Failed to find active Project panel - アクティブなプロジェクトパネルの検索に失敗 - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - 新しいフォルダの作成に失敗 - - - - - Failed to find active project - アクティブなプロジェクトの検索に失敗 - - - - New Folder - 新しいフォルダ - - - - Created New Folder - - - - - Failed to create new sequence - 新しいシーケンスの作成に失敗 - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - 画像シーケンスの可能性検出 - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - ファイル'%1'は画像シーケンスの一部のようです。そのままインポートしますか? - - - - You must specify a project file to export - エクスポートするプロジェクトファイルを指定してください - - - - Specified project does not exist - 指定されたプロジェクトはありません - - - - Failed to open startup file - スタートアップファイルを開けませんでした - - - - The project "%1" doesn't exist. A new project will be started instead. - プロジェクト"%1"は存在しません。代わりに新しいプロジェクトが開始されます。 - - - - - Missing OpenTimelineIO Libraries - OpenTimelineIOライブラリがありません - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - このビルドはOpenTimelineIOなしでコンパイルされたため、OpenTimelineIOファイルを開くことができません。 - - - - - Error - エラー - - - - This Sequence is empty. There is nothing to export. - このシーケンスは空です。エクスポートするものがありません。 - - - - No valid sequence detected. + +< translation > フッテージのインポートに失敗 < /translation> +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation > アクティブなプロジェクトパネルの検索に失敗 < /translation> +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation > 新しいフォルダの作成に失敗 < /translation> +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation > アクティブなプロジェクトの検索に失敗 < /translation> +< /message> +< message > + + New +Folder < /source> +< translation > 新しいフォルダ < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation > 新しいシーケンスの作成に失敗 < /translation> +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation > 画像シーケンスの可能性検出 < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - 有効なシーケンスが見つかりませんでした。 +as +such ? + < translation > ファイル & apos; +% +1 & apos; +は画像シーケンスの一部のようです。そのままインポートしますか? +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation > エクスポートするプロジェクトファイルを指定してください < /translation> +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation > 指定されたプロジェクトはありません < /translation> +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation > スタートアップファイルを開けませんでした < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation > プロジェクト & quot; +% +1 & quot; +は存在しません。代わりに新しいプロジェクトが開始されます。 +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation > OpenTimelineIOライブラリがありません < /translation> +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation > このビルドはOpenTimelineIOなしでコンパイルされたため、OpenTimelineIOファイルを開くことができません。 +< /message> +< message > + + +Error < /source> +< translation > エラー < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation > このシーケンスは空です。エクスポートするものがありません。 +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation > 有効なシーケンスが見つかりませんでした。 シーケンスが読み込まれており、ビュワーノードに接続されていることを確認してください。 - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - 自動修復エラー - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Renamed %1 Node(s) - - - - Failed to save auto-recovery to "%1". Olive may not have permission to this directory. - 自動修復を"%1"に保存できませんでした。Oliveはこのディレクトリの権限を持っていない可能性があります。 - - - Olive Project - Oliveプロジェクト - - - - OpenTimelineIO - - - - The following projects had unsaved changes when Olive forcefully quit. Would you like to load them? - Oliveが強制終了したため、以下のプロジェクトの変更が保存されていません。読み込みますか? - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation > 自動修復エラー < /translation> +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Olive +may +not +have +permission +to +this +directory. < /source> +< translation +type = "vanished" > 自動修復を & quot; +% +1 & quot; +に保存できませんでした。Oliveはこのディレクトリの権限を持っていない可能性があります。 +< /message> +< message > +Olive +Project < /source> +< translation +type = "vanished" > Oliveプロジェクト < /translation> +< /message> +< message > + + OpenTimelineIO < /source> + < translation > + < /message> + < message > + The +following +projects +had +unsaved +changes +when +Olive +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "vanished" > Oliveが強制終了したため、以下のプロジェクトの変更が保存されていません。読み込みますか? +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation > 自動修復が見つかりましたが、自動修復インデックスの読み込みに失敗しました。 自動修復プロジェクトを手動で開く必要があります。 -Your recoverable projects are still available at: %1 - 自動修復が見つかりましたが、自動修復インデックスの読み込みに失敗しました。 自動修復プロジェクトを手動で開く必要があります。 +修復可能なプロジェクトは % 1 +に保存されています < /translation> +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation > 以下のプロジェクトバージョンが自動保存されました +: + +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -修復可能なプロジェクトは%1に保存されています - - - - The following project versions have been auto-saved: - 以下のプロジェクトバージョンが自動保存されました: - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > プロジェクトを別名で保存 < /translation> +< /message> +< message > + + Load +Project < /source> +< translation > プロジェクトの読み込み < /translation> +< /message> +< message > + + Label +Node < /source> +< translation > ラベルノード < /translation> +< /message> +< message > + + Set +node +label < /source> +< translation > ノードラベルの設定 < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > シーケンス % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation > 最近使用したプロジェクトが開けません < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation > プロジェクト & quot; +% +1 & quot; +は存在しません。このファイルを最近使用したプロジェクトから削除しますか? +< /message> +< message > + + Unsaved +Changes < /source> +< translation > 保存されていない変更 < /translation> +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation > プロジェクト & quot; +% +1 & quot; +の変更は保存されていません。保存しますか? +< /message> +< message > + + Save < /source> + < translation > 保存 < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > 全て保存 < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > 保存しない < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translation +type = "vanished" > 全て保存しない < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation > シーケンスのキャッシュに失敗 < /translation> +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation > このシーケンスにはアクティブなビュワーがありません。 +< /message> +< message > + + Open +Project < /source> +< translation > プロジェクトを開く < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > テクスチャ < /translation> +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::CrashHandlerDialog < /name> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "vanished" > 申し訳ありませんが、Oliveがクラッシュしました。 エラーレポートを送信して、修正にご協力ください。 +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation > 何をしていたかをできるだけ詳しく説明してください。 可能であれば、このクラッシュを再現する手順を提供してください。 +< /message> +< message > + + Crash +Report: +< translation > クラッシュレポート +: + +< /message> +< message > + + Send +Error +Report < /source> +< translation > エラーレポートを送信 < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > 送信しない < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > クラッシュレポートが生成されるのを待っています +... + +< /message> +< message > + + Upload +Failed < /source> +< translation > アップロード失敗 < /translation> +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "vanished" > エラーレポートの送信に失敗しました。 後でもう一度やり直してください。 +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "vanished" > クラッシュの概要なし < /translation> + < /message> + < message > + Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "vanished" > クラッシュの概要を入力せずにエラーレポートを送信してもよろしいですか? +< /message> +< message > + + + Failed +to +send +report < /source> +< translation > レポートの送信に失敗しました < /translation> +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation > レポートの送信に必要なシンボルが見つかりませんでした。これはパッケージの問題です。このパッケージをメンテナに通知してください。 +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation > シンボルファイルを開くことができませんでした。アクセス権がない可能性があります。 +< /message> +< message > + + Confirm +Close < /source> +< translation > 確認 < /translation> +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation > クラッシュレポートはまだアップロード中です。今閉じると、レポートが送信されない可能性があります。閉じてもよろしいですか? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + +Texture < /source> +< translation > テクスチャ < /translation> +< /message> +< message > + +Left < /source> +< translation > 左 < /translation> +< /message> +< message > + +Top < /source> +< translation > 上 < /translation> +< /message> +< message > + +Right < /source> +< translation > 右 < /translation> +< /message> +< message > + +Bottom < /source> +< translation > 下 < /translation> +< /message> +< message > + +Feather < /source> +< translation > フェザー < /translation> +< /message> +< message > + +Crop < /source> +< translation > クロップ < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation > 画像の端を切り抜きます。 +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > クロスディゾルブ < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation > 2 +つのクリップ間のスムーズなトランジションです。 +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > カーブエディタ < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation > 全体を表示 < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation > 選択されたもの全体を表示 < /translation> +< /message> +< message > + + Reset +Zoom < /source> +< translation > ズームのリセット < /translation> +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > リニア < /translation> +< /message> +< message > + +Bezier < /source> +< translation > ベジエ < /translation> +< /message> +< message > + +Hold < /source> +< translation > 固定 < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 入力 < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > 緑 < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > 青 < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation > 色に浸す < /translation> +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation > 色に浸してクリップを切り替えます。 +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > 色 < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation > ディスクキャッシュ % 1 < /translation> +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation > ディスクキャッシュ設定 < /translation> +< /message> +< message > + + Maximum +Disk +Cache: +< translation > 最大ディスクキャッシュ +: + +< /message> +< message > + + % 1 +GB < /source> +< translation > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation > ディスクキャッシュの削除 < /translation> +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation > 閉じる際にディスクキャッシュを自動削除する < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation > 本当に & apos; +% +1 & apos; +のディスクキャッシュを削除しますか? +< /message> +< message > + + Disk +Cache +Cleared < /source> +< translation > ディスクキャッシュを削除しました < /translation> +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation > ディスクキャッシュを完全に削除できませんでした。手動でキャッシュファイルを削除する必要があります。 +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation > ディスクキャッシュは一部削除されました < /translation> +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation > ディスクキャッシュエラー < /translation> +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation > カスタムアプリケーションディスクキャッシュを設定できません。デフォルトを使用します。 +< /message> +< message > + + Disk +Cache < /source> +< translation > ディスクキャッシュ < /translation> +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation > デフォルトのディスクキャッシュの場所を変更することを選択しました。これにより、現在のキャッシュが無効になります。続行しますか? +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation > & apos; +% +1 & apos; +のディスクキャッシュを開くことができませんでした。別のフォルダを試してください。 +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 入力 < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > ビュー < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > 方向 < /translation> +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > テクスチャ < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > 色 < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > 透明度 < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > 経過 +: % +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > 残り +: % +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + +Advanced < /source> +< translation > アドバンスド < /translation> +< /message> +< message > + +Pixel < /source> +< translation > ピクセル < /translation> +< /message> +< message > + + Pixel +Format: +< translation > ピクセルフォーマット +: + +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Performance < /source> +< translation > パフォーマンス < /translation> +< /message> +< message > + + Threads +: + +< translation > スレッド +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > コーデック +: + +< /message> +< message > + + Sample +Rate: +< translation > サンプリングレート +: + +< /message> +< message > + + Channel +Layout: +< translation > チャネルレイアウト +: + +< /message> +< message > + + Format +: + +< translation > フォーマット +: + +< /message> +< message > + + Bit +Rate: +< translation > ビットレート +: + +< /message> +< message > + + % 1 +kbps < /source> +< translation > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > +< /message> +< message > + + H +.264 < /source> +< translation > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > +< /message> +< message > + +OpenEXR < /source> +< translation > +< /message> +< message > + +PNG < /source> +< translation > +< /message> +< message > + +ProRes < /source> +< translation > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > +< /message> +< message > + +MP2 < /source> +< translation > +< /message> +< message > + +MP3 < /source> +< translation > +< /message> +< message > + +AAC < /source> +< translation > +< /message> +< message > + +PCM(Uncompressed) < /source> +< translation > PCM(無圧縮) < /translation> +< /message> +< message > + +FLAC < /source> +< translation > +< /message> +< message > + +Opus < /source> +< translation > +< /message> +< message > + +Vorbis < /source> +< translation > +< /message> +< message > + +VP9 < /source> +< translation > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation > +< /message> +< message > + +Unknown < /source> +< translation > 不明 < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > ファイル名 +: + +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation > エクスポートされるファイルのファイル名を参照します < /translation> +< /message> +< message > + + Preset +: + +< translation > プリセット +: + +< /message> +< message > +Same +As +Source - High +Quality < /source> +< translation +type = "vanished" > ソースと同じ - 高品質 < /translation> + < /message> + < message > + Same +As +Source - Medium +Quality < /source> +< translation +type = "vanished" > ソースと同じ - 標準品質 < /translation> + < /message> + < message > + Same +As +Source - Low +Quality < /source> +< translation +type = "vanished" > ソースと同じ - 低品質 < /translation> +< /message> +< message > + + Range +: + +< translation > 範囲 +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation > 全てのシーケンス < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > インポイントからアウトポイントまで < /translation> +< /message> +< message > + + Format +: + +< translation > 形式 +: + +< /message> +< message > + + Export +Video < /source> +< translation > ビデオをエクスポート < /translation> +< /message> +< message > + + Export +Audio < /source> +< translation > オーディオをエクスポート < /translation> +< /message> +< message > +Export +Subtitle < /source> +< translation +type = "vanished" > 字幕をエクスポート < /translation> +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > ビデオ < /translation> +< /message> +< message > + +Audio < /source> +< translation > オーディオ < /translation> +< /message> +< message > + +Subtitles < /source> +< translation > 字幕 < /translation> +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > エクスポート < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > キャンセル < /translation> +< /message> +< message > + +Preview < /source> +< translation > プレビュー < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation > 無効なパラメータ < /translation> +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation > ビデオ、オーディオ、および字幕は無効です。 エクスポートするものはありません。 +< /message> +< message > + + + + Invalid +filename < /source> +< translation > 無効なファイル名 < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation > ファイル名には拡張子 & quot; +% +1 & quot; +が含まれている必要があります。自動的に追加しますか? +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation > 出力ディレクトリの作成に失敗 < /translation> +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > デフォルト < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > + < /message> + < message > + The +intended +output +directory +doesn & apos; +t +exist +and +Olive +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "vanished" > 出力ディレクトリが存在せず、Oliveはそれを作成することができませんでした。他のファイル名を選択してください。 +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation > エクスポートが画像シーケンスに設定されていますが、ファイル名には数字([ +#####] +という形式で、#は桁数 +) +の部分がありません。 +< /message> +< message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation > +このエクスポートに必要なフレーム数に必要な桁数がファイル名にありません。( % nフレームには % 1 +桁必要です +)。 +< /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation > 上書き確認 < /translation> +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation > ファイル & quot; +% +1 & quot; +はすでに存在します。上書きしますか? +< /message> +< message > + + Invalid +Parameters < /source> +< translation > 無効なパラメータ < /translation> +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation > 幅及び高さは2の倍数である必要があります。 +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > +< /message> +< message > + + Matroska +Video < /source> +< translation > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > +< /message> +< message > + +PNG < /source> +< translation > +< /message> +< message > + +TIFF < /source> +< translation > +< /message> +< message > + +QuickTime < /source> +< translation > +< /message> +< message > + + Wave +Audio < /source> +< translation > +< /message> +< message > + +AIFF < /source> +< translation > +< /message> +< message > + +MP3 < /source> +< translation > +< /message> +< message > + +FLAC < /source> +< translation > +< /message> +< message > + +Ogg < /source> +< translation > +< /message> +< message > + +WebM < /source> +< translation > +< /message> +< message > + + SubRip +SRT < /source> +< translation > +< /message> +< message > + +Unknown < /source> +< translation > 不明 < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > ビデオ < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > オーディオ < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > 字幕 < /translation> +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > 名前 +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation > コーデック +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation > & quot; +% +1 & quot; +をエクスポート中 < /translation> +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation > エンコーダの作成に失敗 < /translation> +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation > ファイル +: % +1 +を開けません < /translation> +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation > & quot; +% +1 & quot; +の上書きに失敗しました。代わりにエクスポートは & quot; +% +2 & quot; +として保存されています。 +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + +General < /source> +< translation > 一般 < /translation> +< /message> +< message > + + Width +: + +< translation > 幅 +: + +< /message> +< message > + + Height +: + +< translation > 高さ +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > アスペクト比を維持 +: + +< /message> +< message > + + Scaling +Method: +< translation > スケーリング方法 +: + +< /message> +< message > + +Fit < /source> +< translation > 合わせる < /translation> +< /message> +< message > + +Stretch < /source> +< translation > 引き伸ばす < /translation> +< /message> +< message > + +Crop < /source> +< translation > クロップ < /translation> +< /message> +< message > + + Frame +Rate: +< translation > フレームレート +: + +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > ピクセルのアスペクト比 +: + +< /message> +< message > + + Interlacing +: + +< translation > インタレース +: + +< /message> +< message > + + Quality +: + +< translation > 品質 +: + +< /message> +< message > + +Codec < /source> +< translation > コーデック < /translation> +< /message> +< message > + + Codec +: + +< translation > コーデック +: + +< /message> +< message > + +Advanced < /source> +< translation > アドバンスド < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation > 出力コンテキストの割り当てに失敗 < /translation> +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation > このバッファに適したピクセル形式を見つけることができませんでした < /translation> +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation > IOコンテキストを開くことができませんでした < /translation> +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation > 形式ヘッダーの書き込みに失敗しました < /translation> +< /message> +< message > +Failed +to +create +AVFrame +buffer < /source> +< translation +type = "vanished" > AVフレームバッファの作成に失敗 < /translation> + < /message> + < message > + Failed +to +scale +frame < /source> +< translation +type = "vanished" > フレームのスケーリングに失敗 < /translation> +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation > オーディオのリサンプルに失敗 < /translation> +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation > インターリーブされたパケットの書き込みに失敗 < /translation> +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation > フレームをエンコーダに送信できませんでした < /translation> +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation > デコーダーからのパケット受信に失敗 < /translation> +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation > ビデオ、オーディオ、または字幕タイプではないストリームを初期化できません < /translation> +< /message> +< message > +Unknown +internal +codec < /source> +< translation +type = "vanished" > 不明な内部コーデック < /translation> + < /message> + < message > + Failed +to +find +codec +for % +1 < /source> +< translation +type = "vanished" > % 1 +のコーデックが見つかりませんでした < /translation> +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation > コーデック % 2の予期しないコーデックタイプ % 1 +を取得 < /translation> +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation > AVストリームの割り当てに失敗 < /translation> +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation > AVコーデックコンテキストの割り当てに失敗 < /translation> +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation > エンコーダを開けませんでした < /translation> +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation > コーデックパラメータをストリームにコピーできませんでした < /translation> +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation > リサンプリングコンテキストの作成に失敗 < /translation> +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation > オーディオフレームの作成に失敗 < /translation> +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation > ディレクトリを開く < /translation> +< /message> +< message > + + Open +File < /source> +< translation > ファイルを開く < /translation> +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 入力 < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > 水平 < /translation> +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > 垂直 < /translation> +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > +< /message> +< message > + + % 1 % +< translation > +< /message> +< message > + + ∞ +< translation > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + +Children < /source> +< translation > 子 < /translation> +< /message> +< message > + +Folder < /source> +< translation > フォルダ < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation > 複数のアイテムを1つのコレクションに整理します。 +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation > ファイル名 < /translation> + < /message> + < message > + Loop +Mode < /source> +< translation +type = "vanished" > ループモード < /translation> + < /message> + < message > + None < /source> + < translation +type = "vanished" > なし < /translation> + < /message> + < message > + Loop < /source> + < translation +type = "vanished" > ループ < /translation> + < /message> + < message > + Clamp < /source> + < translation +type = "vanished" > クランプ < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation > % 1 +: +画像 - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation > % 1 +: +ビデオ - % 2 +x % 3 < /translation> +< /message> +< message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation > + % 1 +: +オーディオ - % n +チャンネル, +% +2 +Hz < /numerusform> +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > ビデオ < /translation> +< /message> +< message > + +Audio < /source> +< translation > オーディオ < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > 字幕 < /translation> +< /message> +< message > + +Unknown < /source> +< translation > 不明 < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation > ファイル名 +: % +1 < /translation> +< /message> +< message > + +Invalid < /source> +< translation > 無効 < /translation> +< /message> +< message > + +Media < /source> +< translation > メディア < /translation> +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation > ビデオ、オーディオ、または静止画像ファイルをコンポジションにインポートします。 +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > 名前 +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > 字幕 < /translation> +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > 不明 < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + +Footage < /source> +< translation > フッテージ < /translation> +< /message> +< message > + +Filename < /source> +< translation > ファイル名 < /translation> +< /message> +< message > + +Actions < /source> +< translation > アクション < /translation> +< /message> +< message > + +Browse < /source> +< translation > 参照 < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation > フッテージを再リンク < /translation> +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation > & quot; +% +1 & quot; +を再リンク < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "vanished" > すべてのファイル < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation > フッテージビュワー < /translation> +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation > カスタムフレームレート < /translation> +< /message> +< message > + + Enter +custom +frame +rate: +< translation > カスタムフレームレートを入力 +: + +< /message> +< message > + + Invalid +Input < /source> +< translation > 無効な入力 < /translation> +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation > & quot; +% +1 & quot; +をフレームレートに変換できませんでした。 +< /message> +< message > + + Custom +... + +< translation > カスタム < /translation> +< /message> +< message > + + Custom( % 1 +) + +< translation > カスタム( % 1 +) + +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + +Gap < /source> +< translation > ギャップ < /translation> +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation > 空のスペースを表すタイムベースのノードです。 +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > ベース < /translation> +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > ターゲットビットレート(Mbps) +: + +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > 最大ビットレート(Mbps) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > 2 +Pass < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > ターゲットファイルサイズ(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > 2 +Pass < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation > 圧縮方式 +: + +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation > コンスタントレートファクター < /translation> +< /message> +< message > + + Target +Bit +Rate < /source> +< translation > ターゲットビットレート < /translation> +< /message> +< message > + + Target +File +Size < /source> +< translation > ターゲットファイルサイズ < /translation> +< /message> +< /context> +< context > +olive::HandMovableView < /name> +< message > +Scroll +Zooms +By +Default < /source> +< translation +type = "vanished" > デフォルトでスクロールズーム < /translation> +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation > 画像シーケンス +: + +< /message> +< message > + + Frame +to +Export: +< translation > エクスポートするフレーム +: + +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + +None(Progressive) < /source> +< translation > なし(プログレッシブ) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation > 上位フィールドから < /translation> +< /message> +< message > + + Bottom - Field +First < /source> +< translation > 下位フィールドから < /translation> +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation > キーフレームプロパティ < /translation> +< /message> +< message > + + In +: + +< translation > 入力 +: + +< /message> +< message > + + Out +: + +< translation > 出力 +: + +< /message> +< message > + +Linear < /source> +< translation > リニア < /translation> +< /message> +< message > + +Hold < /source> +< translation > 停止 < /translation> +< /message> +< message > + +Bezier < /source> +< translation > ベジエ < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > リニア < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > ベジエ < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > プロパティ( & P +) + +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > リニア < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > ベジエ < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > 停止 < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "vanished" > プロパティ( & P +) + +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > +Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; + +< translation +type = "vanished" > ファイル & quot; +% +1 & quot; +からOpenTimelineIOを読み込めませんでした < /translation> +< /message> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - プロジェクトを別名で保存 - - - - Load Project - プロジェクトの読み込み - - - - Label Node - ラベルノード - - - - Set node label - ノードラベルの設定 - - - - Sequence %1 - シーケンス %1 - - - - Cannot open recent project - 最近使用したプロジェクトが開けません - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - プロジェクト"%1"は存在しません。このファイルを最近使用したプロジェクトから削除しますか? - - - - Unsaved Changes - 保存されていない変更 - - - - The project '%1' has unsaved changes. Would you like to save them? - プロジェクト"%1"の変更は保存されていません。保存しますか? - - - - Save - 保存 - - - Save All - 全て保存 - - - - Don't Save - 保存しない - - - Don't Save All - 全て保存しない - - - - Failed to cache sequence - シーケンスのキャッシュに失敗 - - - - No active viewer found with this sequence. - このシーケンスにはアクティブなビュワーがありません。 - - - - Open Project - プロジェクトを開く - - - - olive::CornerPinDistortNode - - - Texture - テクスチャ - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - 申し訳ありませんが、Oliveがクラッシュしました。 エラーレポートを送信して、修正にご協力ください。 - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - 何をしていたかをできるだけ詳しく説明してください。 可能であれば、このクラッシュを再現する手順を提供してください。 - - - - Crash Report: - クラッシュレポート: - - - - Send Error Report - エラーレポートを送信 - - - - Don't Send - 送信しない - - - - Waiting for crash report to be generated... - クラッシュレポートが生成されるのを待っています... - - - - Upload Failed - アップロード失敗 - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - Failed to send error report. Please try again later. - エラーレポートの送信に失敗しました。 後でもう一度やり直してください。 - - - No Crash Summary - クラッシュの概要なし - - - Are you sure you want to send an error report with no crash summary? - クラッシュの概要を入力せずにエラーレポートを送信してもよろしいですか? - - - - - Failed to send report - レポートの送信に失敗しました - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - レポートの送信に必要なシンボルが見つかりませんでした。これはパッケージの問題です。このパッケージをメンテナに通知してください。 - - - - Failed to open symbol file. You may not have permission to access it. - シンボルファイルを開くことができませんでした。アクセス権がない可能性があります。 - - - - Confirm Close - 確認 - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - クラッシュレポートはまだアップロード中です。今閉じると、レポートが送信されない可能性があります。閉じてもよろしいですか? - - - - olive::CropDistortNode - - - Texture - テクスチャ - - - - Left - - - - - Top - - - - - Right - - - - - Bottom - - - - - Feather - フェザー - - - - Crop - クロップ - - - - Crop the edges of an image. - 画像の端を切り抜きます。 - - - - olive::CrossDissolveTransition - - - Cross Dissolve - クロスディゾルブ - - - - Smoothly transition between two clips. - 2つのクリップ間のスムーズなトランジションです。 - - - - olive::CurvePanel - - - Curve Editor - カーブエディタ - - - - olive::CurveView - - - Zoom to Fit - 全体を表示 - - - - Zoom to Fit Selected - 選択されたもの全体を表示 - - - - Reset Zoom - ズームのリセット - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - リニア - - - - Bezier - ベジエ - - - - Hold - 固定 - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - 入力 - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - 色に浸す - - - - Transition between clips by dipping to a color. - 色に浸してクリップを切り替えます。 - - - - Color - - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - ディスクキャッシュ %1 - - - - Disk Cache Settings - ディスクキャッシュ設定 - - - - Maximum Disk Cache: - 最大ディスクキャッシュ: - - - - %1 GB - - - - - - - Clear Disk Cache - ディスクキャッシュの削除 - - - - Automatically clear disk cache on close - 閉じる際にディスクキャッシュを自動削除する - - - - Are you sure you want to clear the disk cache in '%1'? - 本当に'%1'のディスクキャッシュを削除しますか? - - - - Disk Cache Cleared - ディスクキャッシュを削除しました - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - ディスクキャッシュを完全に削除できませんでした。手動でキャッシュファイルを削除する必要があります。 - - - - Disk Cache Partially Cleared - ディスクキャッシュは一部削除されました - - - - olive::DiskManager - - - - Disk Cache Error - ディスクキャッシュエラー - - - - Unable to set custom application disk cache. Using default instead. - カスタムアプリケーションディスクキャッシュを設定できません。デフォルトを使用します。 - - - - Disk Cache - ディスクキャッシュ - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - デフォルトのディスクキャッシュの場所を変更することを選択しました。これにより、現在のキャッシュが無効になります。続行しますか? - - - - Failed to open disk cache at "%1". Try a different folder. - '%1'のディスクキャッシュを開くことができませんでした。別のフォルダを試してください。 - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - 入力 - - - - Display - - - - - View - ビュー - - - - Direction - 方向 - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - テクスチャ - - - - Color - - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - 透明度 - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - 経過: %1 - - - - Remaining: %1 - 残り: %1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - アドバンスド - - - - Pixel - ピクセル - - - - Pixel Format: - ピクセルフォーマット: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - パフォーマンス - - - - Threads: - スレッド: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - コーデック: - - - - Sample Rate: - サンプリングレート: - - - - Channel Layout: - チャネルレイアウト: - - - - Format: - フォーマット: - - - - Bit Rate: - ビットレート: - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - PCM (無圧縮) - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - 不明 - - - - olive::ExportDialog - - - Filename: - ファイル名: - - - - Browse for exported file filename - エクスポートされるファイルのファイル名を参照します - - - - Preset: - プリセット: - - - Same As Source - High Quality - ソースと同じ - 高品質 - - - Same As Source - Medium Quality - ソースと同じ - 標準品質 - - - Same As Source - Low Quality - ソースと同じ - 低品質 - - - - Range: - 範囲: - - - - Entire Sequence - 全てのシーケンス - - - - In to Out - インポイントからアウトポイントまで - - - - Format: - 形式: - - - - Export Video - ビデオをエクスポート - - - - Export Audio - オーディオをエクスポート - - - Export Subtitle - 字幕をエクスポート - - - - Export Subtitles - - - - - Video - ビデオ - - - - Audio - オーディオ - - - - Subtitles - 字幕 - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - エクスポート - - - - Cancel - キャンセル - - - - Preview - プレビュー - - - - Invalid parameters - 無効なパラメータ - - - - Video, audio, and subtitles are disabled. There's nothing to export. - ビデオ、オーディオ、および字幕は無効です。 エクスポートするものはありません。 - - - - - - Invalid filename - 無効なファイル名 - - - - The filename must contain the extension "%1". Would you like to append it automatically? - ファイル名には拡張子"%1"が含まれている必要があります。自動的に追加しますか? - - - - Failed to create output directory - 出力ディレクトリの作成に失敗 - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Default - デフォルト - - - - Last Used - - - - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - 出力ディレクトリが存在せず、Oliveはそれを作成することができませんでした。他のファイル名を選択してください。 - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - エクスポートが画像シーケンスに設定されていますが、ファイル名には数字([#####]という形式で、#は桁数)の部分がありません。 - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - このエクスポートに必要なフレーム数に必要な桁数がファイル名にありません。(%nフレームには%1桁必要です)。 - - - - - Confirm Overwrite - 上書き確認 - - - - The file "%1" already exists. Do you want to overwrite it? - ファイル"%1"はすでに存在します。上書きしますか? - - - - Invalid Parameters - 無効なパラメータ - - - - Width and height must be multiples of 2. - 幅及び高さは2の倍数である必要があります。 - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - 不明 - - - - olive::ExportFormatComboBox - - - Video - ビデオ - - - - Audio - オーディオ - - - - Subtitle - 字幕 - - - - olive::ExportSavePresetDialog - - - Name: - 名前: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - コーデック: - - - - olive::ExportTask - - - Exporting "%1" - "%1"をエクスポート中 - - - - Failed to create encoder - エンコーダの作成に失敗 - - - - Failed to open file: %1 - ファイル: %1を開けません - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - "%1"の上書きに失敗しました。代わりにエクスポートは"%2"として保存されています。 - - - - olive::ExportVideoTab - - - General - 一般 - - - - Width: - 幅: - - - - Height: - 高さ: - - - - Maintain Aspect Ratio: - アスペクト比を維持: - - - - Scaling Method: - スケーリング方法: - - - - Fit - 合わせる - - - - Stretch - 引き伸ばす - - - - Crop - クロップ - - - - Frame Rate: - フレームレート: - - - - Pixel Aspect Ratio: - ピクセルのアスペクト比: - - - - Interlacing: - インタレース: - - - - Quality: - 品質: - - - - Codec - コーデック - - - - Codec: - コーデック: - - - - Advanced - アドバンスド - - - - olive::FFmpegEncoder - - - Failed to allocate output context - 出力コンテキストの割り当てに失敗 - - - - Failed to find suitable pixel format for this buffer - このバッファに適したピクセル形式を見つけることができませんでした - - - - Failed to configure filter graph - - - - - Failed to open IO context - IOコンテキストを開くことができませんでした - - - - Failed to write format header - 形式ヘッダーの書き込みに失敗しました - - - Failed to create AVFrame buffer - AVフレームバッファの作成に失敗 - - - Failed to scale frame - フレームのスケーリングに失敗 - - - - Failed to resample audio - オーディオのリサンプルに失敗 - - - - - - - Failed to write interleaved packet - インターリーブされたパケットの書き込みに失敗 - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - フレームをエンコーダに送信できませんでした - - - - Failed to receive packet from decoder - デコーダーからのパケット受信に失敗 - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - ビデオ、オーディオ、または字幕タイプではないストリームを初期化できません - - - Unknown internal codec - 不明な内部コーデック - - - Failed to find codec for %1 - %1のコーデックが見つかりませんでした - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - コーデック%2の予期しないコーデックタイプ%1を取得 - - - - Failed to allocate AVStream - AVストリームの割り当てに失敗 - - - - Failed to allocate AVCodecContext - AVコーデックコンテキストの割り当てに失敗 - - - - Failed to open encoder - エンコーダを開けませんでした - - - - Failed to copy codec parameters to stream - コーデックパラメータをストリームにコピーできませんでした - - - - Failed to create resampling context - リサンプリングコンテキストの作成に失敗 - - - - Failed to create audio frame - オーディオフレームの作成に失敗 - - - - olive::FileField - - - Open Directory - ディレクトリを開く - - - - Open File - ファイルを開く - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - 入力 - - - - Horizontal - 水平 - - - - Vertical - 垂直 - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - フォルダ - - - - Organize several items into a single collection. - 複数のアイテムを1つのコレクションに整理します。 - - - - olive::Footage - - - Filename - ファイル名 - - - Loop Mode - ループモード - - - None - なし - - - Loop - ループ - - - Clamp - クランプ - - - - %1: Image - %2x%3 - %1: 画像 - %2x%3 - - - - %1: Video - %2x%3 - %1: ビデオ - %2x%3 - - - - %1: Audio - %n Channel(s), %2Hz - - %1: オーディオ - %n チャンネル, %2Hz - - - - - %1: Subtitle - - - - - Video - ビデオ - - - - Audio - オーディオ - - - - Subtitle - 字幕 - - - - Unknown - 不明 - - - - Filename: %1 - ファイル名: %1 - - - - Invalid - 無効 - - - - Media - メディア - - - - Import video, audio, or still image files into the composition. - ビデオ、オーディオ、または静止画像ファイルをコンポジションにインポートします。 - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - 名前: - - - - Tracks: - - - - - Subtitles - 字幕 - - - - Unknown - 不明 - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - フッテージ - - - - Filename - ファイル名 - - - - Actions - アクション - - - - Browse - 参照 - - - - Relink Footage - フッテージを再リンク - - - - Relink "%1" - "%1"を再リンク - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - すべてのファイル - - - - olive::FootageViewerPanel - - - Footage Viewer - フッテージビュワー - - - - olive::FrameRateComboBox - - - Custom Frame Rate - カスタムフレームレート - - - - Enter custom frame rate: - カスタムフレームレートを入力: - - - - Invalid Input - 無効な入力 - - - - Failed to convert "%1" to a frame rate. - "%1"をフレームレートに変換できませんでした。 - - - - Custom... - カスタム - - - - Custom (%1) - カスタム (%1) - - - - olive::GapBlock - - - Gap - ギャップ - - - - A time-based node that represents an empty space. - 空のスペースを表すタイムベースのノードです。 - - - - olive::GeneratorWithMerge - - - Base - ベース - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - ターゲットビットレート (Mbps): - - - - Maximum Bit Rate (Mbps): - 最大ビットレート (Mbps): - - - - Two-Pass - 2 Pass - - - - olive::H264FileSizeSection - - - Target File Size (MB): - ターゲットファイルサイズ (MB): - - - - Two-Pass - 2 Pass - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - 圧縮方式: - - - - Constant Rate Factor - コンスタントレートファクター - - - - Target Bit Rate - ターゲットビットレート - - - - Target File Size - ターゲットファイルサイズ - - - - olive::HandMovableView - - Scroll Zooms By Default - デフォルトでスクロールズーム - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - 画像シーケンス: - - - - Frame to Export: - エクスポートするフレーム: - - - - olive::InterlacedComboBox - - - None (Progressive) - なし (プログレッシブ) - - - - Top-Field First - 上位フィールドから - - - - Bottom-Field First - 下位フィールドから - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - キーフレームプロパティ - - - - In: - 入力: - - - - Out: - 出力: - - - - Linear - リニア - - - - Hold - 停止 - - - - Bezier - ベジエ - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - リニア - - - - Bezier - ベジエ - - - - Hold - - - - - P&roperties - プロパティ(&P) - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - リニア - - - Bezier - ベジエ - - - Hold - 停止 - - - P&roperties - プロパティ(&P) - - - - olive::LoadOTIOTask - - Failed to load OpenTimelineIO from file "%1" - ファイル "%1"からOpenTimelineIOを読み込めませんでした - - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - 不明なOpenTimelineIOルート要素 - - - - Sequence %1 - シーケンス %1 - - - - Failed to load clip - クリップのロードに失敗 - - - - olive::MainMenu - - - &Save '%1' - 保存(&S) '%1' - - - - Save '%1' &As - '%1'を別名で保存(&A) - - - Close '%1' - '%1'を閉じる - - - Close All Except '%1' - '%1'以外をすべて閉じる - - - - &Save Project - プロジェクトを保存(&S) - - - - Save Project &As - 別名で保存(&A) - - - Close Project - プロジェクトを閉じる - - - Close All Except Current Project - 現在のプロジェクト以外をすべて閉じる - - - - (None) - (なし) - - - - &File - ファイル(&F) - - - - &New - 新規(&N) - - - - &Open Project - プロジェクトを開く(&O) - - - - Open &Recent - 最近使用したプロジェクトを開く(&R) - - - - &Clear Recent List - 最近使用したプロジェクトのクリア(&C) - - - Sa&ve All Projects - 全てのプロジェクトを保存(&v) - - - - &Import... - インポート(&I) - - - - &Export - エクスポート(&E) - - - - &Media... - メディア(&M) - - - Close All Projects - 全てのプロジェクトを閉じる - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation > 不明なOpenTimelineIOルート要素 < /translation> +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > シーケンス % 1 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation > クリップのロードに失敗 < /translation> +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation > 保存( & S +) & +apos; +% +1 & apos; + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > & apos; +% +1 & apos; +を別名で保存( & A +) + +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > & apos; +% +1 & apos; +を閉じる < /translation> +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "vanished" > & apos; +% +1 & apos; +以外をすべて閉じる < /translation> +< /message> +< message > + + & Save +Project < /source> +< translation > プロジェクトを保存( & S +) + +< /message> +< message > + + Save +Project & As < /source> +< translation > 別名で保存( & A +) + +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > プロジェクトを閉じる < /translation> + < /message> + < message > + Close +All +Except +Current +Project < /source> +< translation +type = "vanished" > 現在のプロジェクト以外をすべて閉じる < /translation> +< /message> +< message > + +(None) < /source> +< translation > (なし) < /translation> +< /message> +< message > + + & File < /source> + < translation > ファイル( & F +) + +< /message> +< message > + + & New < /source> + < translation > 新規( & N +) + +< /message> +< message > + + & Open +Project < /source> +< translation > プロジェクトを開く( & O +) + +< /message> +< message > + + Open & Recent < /source> + < translation > 最近使用したプロジェクトを開く( & R +) + +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > 最近使用したプロジェクトのクリア( & C +) + +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > 全てのプロジェクトを保存( & v +) + +< /message> +< message > + + & Import +... + +< translation > インポート( & I +) + +< /message> +< message > + + & Export < /source> + < translation > エクスポート( & E +) + +< /message> +< message > + + & Media +... + +< translation > メディア( & M +) + +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > 全てのプロジェクトを閉じる < /translation> +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > 左 < /translation> +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > 右 < /translation> +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/pt_BR.ts b/app/ts/pt_BR.ts index 980222352..cbd464534 100644 --- a/app/ts/pt_BR.ts +++ b/app/ts/pt_BR.ts @@ -1,3835 +1,7200 @@ - - - + + + - AudioParams - - - %1 Hz - - - - - Mono - Mono - - - - Stereo - Estéreo - - - - 2.1 - 144p {2.1?} - - - - 5.1 - 144p {5.1?} - - - - 7.1 - 144p {7.1?} - - - - - Unknown (0x%1) - - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Mono < /source> + < translation +type = "unfinished" > Mono < /translation> +< /message> +< message > + + Stereo < /source> + < translation +type = "unfinished" > Estéreo < /translation> +< /message> +< message > + + 2.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 2.1 ? +} + +< /message> +< message > + + 5.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 5.1 ? +} + +< /message> +< message > + + 7.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 7.1 ? +} + +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - Cor - - - - Matrix - Matriz - - - - Text - Texto - - - - Font - Fonte - - - - File - - - - - Texture - Textura - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Bézier - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Alterar %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Editar parâmetros - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - Barras - - - - Shape - - - - - Solid - Sólido - - - - Title - Título - - - - Tone - Tom - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 144p {1/%1?} - - - - 8-bit - Inteiro de 8 bits - - - - 10-bit Packed - - - - - 16-bit Integer - Inteiro de 16 bits - - - - Half-Float (16-bit) - Ponto flutuante de 16 bits - - - - Full-Float (32-bit) - Ponto flutuante de 32 bits - - - - Unknown (0x%1) - - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Cor < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > Matriz < /translation> +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > Texto < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > Fonte < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textura < /translation> +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Alterar % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Editar +parâmetros < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > Barras < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > Sólido < /translation> +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > Título < /translation> +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > Tom < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 1 / % 1 ? +} + +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > Inteiro +de +8 +bits < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > Inteiro +de +16 +bits < /translation> +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > Ponto +flutuante +de +16 +bits < /translation> +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > Ponto +flutuante +de +32 +bits < /translation> +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Predefinição +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "obsolete" > Olive +é +um +editor +de +vídeos +não - linear.Este +software +é +livre +e +protegido +pela +licença +GNU +GPL. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "obsolete" > A +equipe +do Olive informa +que +o +código - fonte +está +disponível +no +site +do projeto. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > Pesquisar +ação +... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio < /source> +< translation +type = "obsolete" > Áudio < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > Duração < /translation> +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Centro < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Repetir < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > Cor < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > Gerenciamento +de +cores < /translation> +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > Espaço +de +cor: +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > Exibição +: + +< /message> +< message > + + View +: + +< translation +type = "unfinished" > Visualizar +: + +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > Aparência +: + +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > (nenhum) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Predefinição: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive é um editor de vídeos não-linear. Este software é livre e protegido pela licença GNU GPL. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - A equipe do Olive informa que o código-fonte está disponível no site do projeto. - - - - olive::ActionSearch - - - Search for action... - Pesquisar ação... - - - - olive::AudioInput - - Audio - Áudio - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bézier - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - Duração - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - Centro - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - Repetir - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Cor - - - - olive::ColorSpaceChooser - - - Color Management - Gerenciamento de cores - - - - Input: - - - - - Color Space: - Espaço de cor: - - - - Display: - Exibição: - - - - View: - Visualizar: - - - - Look: - Aparência: - - - - (None) - (nenhum) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - Nova pasta - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - Save Project - Salvar projeto - - - - - Error - Erro - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > Nova +pasta < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Save +Project < /source> +< translation +type = "obsolete" > Salvar +projeto < /translation> +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > Erro < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > Sequência % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > Abrir +projeto < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textura < /translation> +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textura < /translation> +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > Em +cima < /translation> +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > Embaixo < /translation> +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > Dissolver +cruzado < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linear < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Constante < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Cor < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Exibir < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Textura < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Cor < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Opacidade < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Avançado < /translation> +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > Formato +de +pixel: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > Threads +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > Codec +: + +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > Taxa +de +amostragem: +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Formato +: + +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > Nome +do arquivo: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > Predefinição +: + +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > Intervalo +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > Sequência +inteira < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > Faixa +de +entrada / saída < /translation> +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Formato +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Vídeo < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Áudio < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > Exportar < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Cancelar < /translation> +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Padrão < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Vídeo < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Áudio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Nome +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Codec +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > Geral < /translation> +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > Largura +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > Altura +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > Ajustar < /translation> +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > Taxa +de +quadros: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > Taxa +de +proporção +do pixel: +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > Entrelaçamento +: + +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Codec +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Avançado < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Vídeo < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Áudio < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > Propriedades & quot; +% +1 & quot; + +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Nome +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > Faixas +: + +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > Procurar < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "obsolete" > Todos +os +arquivos < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > Tamanho +do arquivo alvo(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > Nenhum(Progressivo) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linear < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Constante < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Linear < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bézier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Constante < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > Linear < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > Bézier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "obsolete" > Constante < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - Sequência %1 - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - Abrir projeto - - - - olive::CornerPinDistortNode - - - Texture - Textura - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - Textura - - - - Left - - - - - Top - Em cima - - - - Right - - - - - Bottom - Embaixo - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - Dissolver cruzado - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Linear - - - - Bezier - Bézier - - - - Hold - Constante - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - Cor - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - Exibir - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - Textura - - - - Color - Cor - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Opacidade - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Avançado - - - - Pixel - - - - - Pixel Format: - Formato de pixel: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - Threads: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Codec: - - - - Sample Rate: - Taxa de amostragem: - - - - Channel Layout: - - - - - Format: - Formato: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - Nome do arquivo: - - - - Browse for exported file filename - - - - - Preset: - Predefinição: - - - - Range: - Intervalo: - - - - Entire Sequence - Sequência inteira - - - - In to Out - Faixa de entrada/saída - - - - Format: - Formato: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - Vídeo - - - - Audio - Áudio - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Exportar - - - - Cancel - Cancelar - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - Default - Padrão - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - Vídeo - - - - Audio - Áudio - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - Nome: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Codec: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - Geral - - - - Width: - Largura: - - - - Height: - Altura: - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - Ajustar - - - - Stretch - - - - - Crop - - - - - Frame Rate: - Taxa de quadros: - - - - Pixel Aspect Ratio: - Taxa de proporção do pixel: - - - - Interlacing: - Entrelaçamento: - - - - Quality: - - - - - Codec - - - - - Codec: - Codec: - - - - Advanced - Avançado - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - %1: Subtitle - - - - - Video - Vídeo - - - - Audio - Áudio - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - Propriedades "%1" - - - - Name: - Nome: - - - - Tracks: - Faixas: - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - Procurar - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Todos os arquivos - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Tamanho do arquivo alvo (MB): - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Nenhum (Progressivo) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Linear - - - - Hold - Constante - - - - Bezier - Bézier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Linear - - - - Bezier - Bézier - - - - Hold - Constante - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Linear - - - Bezier - Bézier - - - Hold - Constante - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - Sequência %1 - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - &Salvar projeto - - - - Save Project &As - Salvar projeto &como - - - - (None) - (nenhum) - - - - &File - &Arquivo - - - - &New - &Novo - - - - &Open Project - &Abrir projeto - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - &Importar... - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > Sequência % 1 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > & Salvar +projeto < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > Salvar +projeto & como < /translation> +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > (nenhum) < /translation> +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > & Arquivo < /translation> +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > & Novo < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > & Abrir +projeto < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > & Importar +... + +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/ru_RU.ts b/app/ts/ru_RU.ts index 324ce2b2b..638ba85e2 100644 --- a/app/ts/ru_RU.ts +++ b/app/ts/ru_RU.ts @@ -1,9493 +1,17086 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Гц - - - - Mono - Моно - - - - Stereo - Стерео - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Неизвестно (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Ошибка при загрузке настроек - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Гц < /translation> +< /message> +< message > + +Mono < /source> +< translation > Моно < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Стерео < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Неизвестно(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Ошибка +при +загрузке +настроек < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - Ошибка при сохранении настроек - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - Больше не спрашивать - - - - No Active Sequence - Нет активной последовательности - - - - No sequence is currently open. Would you like to create one? - Нет открытых последовательностей. Создать новую? - - - - Automatically Detect Parameters From Footage - Автоматически определить - - - - Set Parameters Manually - Указать вручную - - - - NodeCopyPasteWidget - - Error pasting nodes - Ошибка при вставке нод - - - Failed to paste nodes: %1 - Не удалось вставить ноды: %1 - - - - NodeFactory - - - None - Нет - - - - NodeValue - - - None - Нет - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - Цвет - - - - Matrix - Матрица - - - - Text - Текст - - - - Font - Шрифт - - - - File - Файл - - - - Texture - Текстура - - - - Samples - Сэмплы - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Безье - - - - Video Parameters - Параметры видео - - - - Audio Parameters - Параметры звука - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - Неизвестно - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - Выход - - - - %1... - %1... - - - - OlivePluginInstance - - - Change %1 - Изменить %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Изменить параметры - - - - PresetManager - - - Save Preset - Сохранить профиль - - - - Set preset name: - Название профиля: - - - - Invalid preset name - Некорректное название профиля - - - - You must enter a preset name - Введите название профиля - - - - Preset exists - Профиль с таким названием уже существует - - - - A preset with this name already exists. Would you like to replace it? - Уже есть профиль с таким названием. Заменить его? - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - Неправильное соотношение сторон - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - Пустота - - - - Bars - Испытательная таблица - - - - Shape - Фигура - - - - Solid - Заливка - - - - Title - Титры - - - - Tone - Звуковой сигнал - - - - Subtitle - Субтитры - - - - Unknown - Неизвестно - - - - UndoStack - - - Undo %1 - Отменить %1 - - - - Redo %1 - Вернуть %1 - - - - VideoParams - - - Full - - - - - 1/%1 - 144p {1/%1?} - - - - 8-bit - 8 бит - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - Неизвестно (0x%1) - - - - %1 FPS - %1 к/с - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - Стандартный NTSC (%1) - - - - NTSC Widescreen (%1) - Широкоэкранный NTSC (%1) - - - - PAL Standard (%1) - Стандартный PAL (%1) - - - - PAL Widescreen (%1) - Широкоэкранный PAL (%1) - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - Показать этот справочный текст - - - - Show application version - Показать версию приложения - - - - Start in full-screen mode - Запуститься в полноэкранном режиме - - - - Export only (No GUI) - Только эксперт (без графического интерфейса) - - - - Override language with file - Запустить с локализацией из заданного файла - - - - qm-file - файл qm - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - Какой проект открыть при запуске - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation > Ошибка +при +сохранении +настроек < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > Больше +не +спрашивать < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation > Нет +активной +последовательности < /translation> +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation > Нет открытых +последовательностей.Создать +новую ? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > Автоматически +определить < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > Указать +вручную < /translation> +< /message> +< /context> +< context > +NodeCopyPasteWidget < /name> +< message > +Error +pasting +nodes < /source> +< translation +type = "vanished" > Ошибка +при +вставке +нод < /translation> +< /message> +< message > +Failed +to +paste +nodes: % +1 < /source> +< translation +type = "vanished" > Не +удалось +вставить +ноды: % +1 < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > Нет < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + +None < /source> +< translation > Нет < /translation> +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Цвет < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > Матрица < /translation> +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > Текст < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > Шрифт < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > Файл < /translation> +< /message> +< message > + +Texture < /source> +< translation > Текстура < /translation> +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > Сэмплы < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безье < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation > Параметры +видео < /translation> +< /message> +< message > + + Audio +Parameters < /source> +< translation > Параметры +звука < /translation> +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > Неизвестно < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > Выход < /translation> +< /message> +< message > + + % 1... < /source> +< translation > % 1... < /translation> +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Изменить % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Изменить +параметры < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation > Сохранить +профиль < /translation> +< /message> +< message > + + Set +preset +name: +< translation > Название +профиля: +< /message> +< message > + + Invalid +preset +name < /source> +< translation > Некорректное +название +профиля < /translation> +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation > Введите +название +профиля < /translation> +< /message> +< message > + + Preset +exists < /source> +< translation > Профиль +с +таким +названием +уже +существует < /translation> +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation > Уже есть +профиль +с +таким +названием.Заменить +его ? +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation > Неправильное +соотношение +сторон < /translation> +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > Пустота < /translation> +< /message> +< message > + + Bars < /source> + < translation > Испытательная +таблица < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > Фигура < /translation> +< /message> +< message > + +Solid < /source> +< translation > Заливка < /translation> +< /message> +< message > + +Title < /source> +< translation > Титры < /translation> +< /message> +< message > + + Tone < /source> + < translation > Звуковой +сигнал < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > Субтитры < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Неизвестно < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + +Undo % 1 < /source> +< translation > Отменить % 1 < /translation> +< /message> +< message > + +Redo % 1 < /source> +< translation > Вернуть % 1 < /translation> +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 1 / % 1 ? +} + +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > 8 +бит < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > Неизвестно(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > % 1 +к / с < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > Стандартный +NTSC( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > Широкоэкранный +NTSC( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > Стандартный +PAL( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > Широкоэкранный +PAL( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > Показать +этот +справочный +текст < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > Показать +версию +приложения < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > Запуститься +в +полноэкранном +режиме < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > Только +эксперт(без +графического +интерфейса +) + +< /message> +< message > + + Override +language +with file < /source> +< translation > Запустить с +локализацией +из +заданного +файла < /translation> +< /message> +< message > + + qm - file < /source> + < translation > файл +qm < /translation> +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > Какой +проект +открыть +при +запуске < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Профиль +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > Способ +сжатия: +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > Постоянная +скорость +потока < /translation> +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation > Приветствуем +в % 1 < /translation> +< /message> +< message > + + About % 1 < /source> + < translation > О +программе % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + + < /message> + < message > + Olive +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "vanished" > Olive — свободный +нелинейный +видеоредактор.Программа +распространяется +на +условиях +GNU +GPL +v3. < /translation> +< /message> +< message > +<b>Olive +relies +on +support +from +the +community +to +continue its +development. < /b> + <b>Разработка +Olive +возможна +благодаря +поддержке +сообщества. < /b> + +< message > +Olive +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "vanished" > Проекту +уже +помогают: +< /message> +< message > +<html> % 1 +If +you +like +this +project, please +consider +making +a < a +href = +& +apos; +https://olivevideoeditor.org/donate.php'>one-time donation</a> or <a href='https://www.patreon.com/olivevideoeditor'>pledging monthly</a> to support its development.</html> + <html> % 1 +Если +вам +нравится +этот +проект, будем +признательны +за < a +href = +& +apos; +https://olivevideoeditor.org/donate.php'>разовое</a> или <a href='https://www.patreon.com/olivevideoeditor'>ежемесячное</a> пожертвование для поддержки разработки.</html> + + < message > + + Don & apos; +t +show +this +message +again < /source> +< translation > Больше +не +показывать +это +сообщение < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation > Найти +действие… +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > +Qt < /source> +< translation +type = "vanished" > Qt < /translation> + < /message> + < message > + Unknown < /source> + < translation +type = "vanished" > Неизвестно < /translation> +< /message> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > Монитор +звука < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + +Auto - Recovery < /source> +< translation > Автовосстановление < /translation> +< /message> +< message > + +Load < /source> +< translation > Загрузить < /translation> +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безье < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > Вход +: + +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > Выход +: + +< /message> +< /context> +< context > +olive::Block < /name> +< message > + +Length < /source> +< translation > Длительность < /translation> +< /message> +< message > + +Enabled < /source> +< translation > Включено < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > Размытие < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > Размывает +изображение. < /translation> +< /message> +< message > + +Input < /source> +< translation > Вход < /translation> +< /message> +< message > + +Method < /source> +< translation > Способ < /translation> +< /message> +< message > + + Box < /source> + < translation > По +рамке < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > Гауссово < /translation> +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Radius < /source> +< translation > Радиус < /translation> +< /message> +< message > + + Horizontal < /source> + < translation > По +горизонтали < /translation> +< /message> +< message > + + Vertical < /source> + < translation > По +вертикали < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Направление < /translation> +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > По +центру < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Вход < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > Качество +: + +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Clip < /source> +< translation > Клип < /translation> +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Buffer < /source> +< translation > Буфер < /translation> +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > Факт.начало < /translation> +< /message> +< message > + +Speed < /source> +< translation > Скорость < /translation> +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > Развернуть < /translation> +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Петля < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > Нет < /translation> +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + +Red < /source> +< translation > Красный < /translation> +< /message> +< message > + +Maroon < /source> +< translation > Каштановый < /translation> +< /message> +< message > + +Orange < /source> +< translation > Оранжевый < /translation> +< /message> +< message > + +Brown < /source> +< translation > Коричневый < /translation> +< /message> +< message > + + Yellow < /source> + < translation > Жёлтый < /translation> + < /message> + < message > + Olive < /source> + < translation +type = "vanished" > Оливковый < /translation> +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Lime < /source> +< translation > Лаймовый < /translation> +< /message> +< message > + +Green < /source> +< translation > Зелёный < /translation> +< /message> +< message > + +Cyan < /source> +< translation > Циановый < /translation> +< /message> +< message > + +Teal < /source> +< translation > Бирюзовый < /translation> +< /message> +< message > + +Blue < /source> +< translation > Синий < /translation> +< /message> +< message > + +Navy < /source> +< translation > Тёмно - синий < /translation> +< /message> +< message > + +Pink < /source> +< translation > Розовый < /translation> +< /message> +< message > + +Purple < /source> +< translation > Пурпурный < /translation> +< /message> +< message > + +Silver < /source> +< translation > Серебряный < /translation> +< /message> +< message > + +Gray < /source> +< translation > Серый < /translation> +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > Выбрать +цвет < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Вход < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Синий < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation > Цвет < /translation> + < /message> + < /context> + < context > + olive::ColorManager < /name> + < message > + Configuration < /source> + < translation +type = "vanished" > Конфигурация < /translation> + < /message> + < message > + Default +Input < /source> +< translation +type = "vanished" > Вход +по +у +молчанию < /translation> +< /message> +< message > +Reference +Space < /source> +< translation +type = "vanished" > Реф.пространство < /translation> + < /message> + < message > + Scene +Linear < /source> +< translation +type = "vanished" > Линейная +сцена < /translation> +< /message> +< message > +Compositing +Log < /source> +< translation +type = "vanished" > Лог.композитинг < /translation> + < /message> + < message > + (built - in) < /source> + < translation +type = "vanished" > (встроенная) < /translation> + < /message> + < message > + Color +Manager < /source> +< translation +type = "vanished" > Управление +цветом < /translation> +< /message> +< message > +Color +management +configuration +for project. < /source> + < translation type = "vanished" > Настройка +управления +цветом +в +проекте. < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation > Управление +цветом < /translation> +< /message> +< message > + + Input +: + +< translation > Вход +: + +< /message> +< message > + + Color +Space: +< translation > Пространство +: + +< /message> +< message > + + Display +: + +< translation > Дисплей +: + +< /message> +< message > + + View +: + +< translation > Вид +: + +< /message> +< message > + + Look +: + +< translation > Обработка +: + +< /message> +< message > + +(None) < /source> +< translation > (нет) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Red < /source> +< translation > Красный < /translation> +< /message> +< message > + +Green < /source> +< translation > Зеленый < /translation> +< /message> +< message > + +Blue < /source> +< translation > Синий < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > Предпросмотр < /translation> +< /message> +< message > + +Input < /source> +< translation > Вход < /translation> +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Display < /source> +< translation > Дисплей < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation > Ошибка +импорта < /translation> +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation > Нет +импортируемых +данных < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation > Выполняется +импорт… +< /message> +< message > + + Import +footage +... + +< translation > Импортировать +видеоматериал +... + +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Профиль: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - Способ сжатия: - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - Постоянная скорость потока - - - - olive::AboutDialog - - - Welcome to %1 - Приветствуем в %1 - - - - About %1 - О программе %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - Olive is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - Olive — свободный нелинейный видеоредактор. Программа распространяется на условиях GNU GPL v3. - - - <b>Olive relies on support from the community to continue its development.</b> - <b>Разработка Olive возможна благодаря поддержке сообщества.</b> - - - Olive wouldn't be possible without the support of gracious donations from the following people. - Проекту уже помогают: - - - <html>%1 If you like this project, please consider making a <a href='https://olivevideoeditor.org/donate.php'>one-time donation</a> or <a href='https://www.patreon.com/olivevideoeditor'>pledging monthly</a> to support its development.</html> - <html>%1 Если вам нравится этот проект, будем признательны за <a href='https://olivevideoeditor.org/donate.php'>разовое</a> или <a href='https://www.patreon.com/olivevideoeditor'>ежемесячное</a> пожертвование для поддержки разработки.</html> - - - - Don't show this message again - Больше не показывать это сообщение - - - - olive::ActionSearch - - - Search for action... - Найти действие… - - - - olive::AudioManager - - Qt - Qt - - - Unknown - Неизвестно - - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - Монитор звука - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - Автовосстановление - - - - Load - Загрузить - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Безье - - - - In: - Вход: - - - - Out: - Выход: - - - - olive::Block - - - Length - Длительность - - - - Enabled - Включено - - - - olive::BlurFilterNode - - - Blur - Размытие - - - - Blurs an image. - Размывает изображение. - - - - Input - Вход - - - - Method - Способ - - - - Box - По рамке - - - - Gaussian - Гауссово - - - - Directional - - - - - Radial - - - - - Radius - Радиус - - - - Horizontal - По горизонтали - - - - Vertical - По вертикали - - - - Repeat Edge Pixels - - - - - Direction - Направление - - - - Center - По центру - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - Вход - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - Качество: - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - Клип - - - - A time-based node that represents a media source. - - - - - Buffer - Буфер - - - - Media In - Факт. начало - - - - Speed - Скорость - - - - Reverse - Развернуть - - - - Maintain Audio Pitch - - - - - - Loop - Петля - - - - None - Нет - - - - Clamp - - - - - olive::ColorCoding - - - Red - Красный - - - - Maroon - Каштановый - - - - Orange - Оранжевый - - - - Brown - Коричневый - - - - Yellow - Жёлтый - - - Olive - Оливковый - - - - Oak - - - - - Lime - Лаймовый - - - - Green - Зелёный - - - - Cyan - Циановый - - - - Teal - Бирюзовый - - - - Blue - Синий - - - - Navy - Тёмно-синий - - - - Pink - Розовый - - - - Purple - Пурпурный - - - - Silver - Серебряный - - - - Gray - Серый - - - - olive::ColorDialog - - - Select Color - Выбрать цвет - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - Вход - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - Синий - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Цвет - - - - olive::ColorManager - - Configuration - Конфигурация - - - Default Input - Вход по у молчанию - - - Reference Space - Реф. пространство - - - Scene Linear - Линейная сцена - - - Compositing Log - Лог. композитинг - - - (built-in) - (встроенная) - - - Color Manager - Управление цветом - - - Color management configuration for project. - Настройка управления цветом в проекте. - - - - olive::ColorSpaceChooser - - - Color Management - Управление цветом - - - - Input: - Вход: - - - - Color Space: - Пространство: - - - - Display: - Дисплей: - - - - View: - Вид: - - - - Look: - Обработка: - - - - (None) - (нет) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - Красный - - - - Green - Зеленый - - - - Blue - Синий - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - Предпросмотр - - - - Input - Вход - - - - Reference - - - - - Display - Дисплей - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - Ошибка импорта - - - - Nothing to import - Нет импортируемых данных - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - Выполняется импорт… - - - - Import footage... - Импортировать видеоматериал... - - - - Failed to import footage - Не удалось импортировать видеоматериал - - - - Failed to find active Project panel - Не удалось найти активную панель проекта - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - Не удалось создать папку - - - - - Failed to find active project - Не удалось найти активный проект - - - - New Folder - Новая папка - - - - Created New Folder - - - - - Failed to create new sequence - Не удалось создать последовательность - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - Обнаружена возможная последовательность изображений - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - Необходимо указать проектный файл, который экспортировать - - - - Specified project does not exist - Указанный проект не существует - - - - Failed to open startup file - Не удалось открыть стартовый файл - - - - The project "%1" doesn't exist. A new project will be started instead. - Проект "%1" не существует. Вместо него будет создан новый проект. - - - - - Missing OpenTimelineIO Libraries - Отсутствуют библиотеки OpenTimelineIO - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - Это сборка подготовлена без OpenTimelineIO, поэтому вы не сможете открыть файлы OpenTimelineIO. - - - - - Error - Ошибка - - - - This Sequence is empty. There is nothing to export. - Эта последовательность пустая. В ней нет данных для экспорта. - - - - No valid sequence detected. + +< translation > Не +удалось +импортировать +видеоматериал < /translation> +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation > Не +удалось +найти +активную +панель +проекта < /translation> +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation > Не +удалось +создать +папку < /translation> +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation > Не +удалось +найти +активный +проект < /translation> +< /message> +< message > + + New +Folder < /source> +< translation > Новая +папка < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation > Не +удалось +создать +последовательность < /translation> +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation > Обнаружена +возможная +последовательность +изображений < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - Ошибка при автовосстановлении - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Renamed %1 Node(s) - - - - Olive Project - Проект Olive - - - - OpenTimelineIO - OpenTimelineIO - - - The following projects had unsaved changes when Olive forcefully quit. Would you like to load them? - В следующих проектах не были сохранены изменения, когда Olive упал. Хотите загрузить их? - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation > Необходимо +указать +проектный +файл, который +экспортировать < /translation> +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation > Указанный +проект +не +существует < /translation> +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation > Не +удалось +открыть +стартовый +файл < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation > Проект & quot; +% +1 & quot; +не +существует.Вместо +него +будет +создан +новый +проект. < /translation> +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation > Отсутствуют +библиотеки +OpenTimelineIO < /translation> +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation > Это +сборка +подготовлена +без +OpenTimelineIO, поэтому +вы +не +сможете +открыть +файлы +OpenTimelineIO. < /translation> +< /message> +< message > + + +Error < /source> +< translation > Ошибка < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation > Эта +последовательность +пустая.В +ней +нет +данных +для +экспорта. < /translation> +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation > Ошибка +при +автовосстановлении < /translation> +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +Project < /source> +< translation +type = "vanished" > Проект +Olive < /translation> +< /message> +< message > + + OpenTimelineIO < /source> + < translation > OpenTimelineIO < /translation> + < /message> + < message > + The +following +projects +had +unsaved +changes +when +Olive +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "vanished" > В +следующих +проектах +не +были +сохранены +изменения, когда +Olive +упал.Хотите +загрузить +их ? +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation > Найдены +данные +для +автовосстановления, но +не +удалось +загрузить +индекс +автовосстановления.Автоматически +восстанавливаемые +проекты +придется +открыть +вручную.Восстанавливаемые +проекты +по - прежнему +доступны +здесь: % +1 < /translation> +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation > Следующие +версии +проектов +были +автоматически +сохранены: +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - Найдены данные для автовосстановления, но не удалось загрузить индекс автовосстановления. Автоматически восстанавливаемые проекты придется открыть вручную. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > Сохранить +проект +как < /translation> +< /message> +< message > + + Load +Project < /source> +< translation > Загрузка +проекта < /translation> +< /message> +< message > + + Label +Node < /source> +< translation > Метка +ноды < /translation> +< /message> +< message > + + Set +node +label < /source> +< translation > Указать +метку +ноды < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > Последовательность % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation > Не +удалось +открыть +недавний +проект < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation > Проект & quot; +% +1 & quot; +не +существует.Хотите +удалить +этот +файл +из +списка +недавно +открывавшихся ? +< /message> +< message > + + Unsaved +Changes < /source> +< translation > Несохраненные +изменения < /translation> +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation > В проекте & apos; +% +1 & apos; +остались +несохраненные +изменения.Сохранить +их ? +< /message> +< message > + + Save < /source> + < translation > Сохранить < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > Сохранить +все < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > Не +сохранять < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translation +type = "vanished" > Не +сохранять +все < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation > Не +удалось +закэшировать +последовательность < /translation> +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation > Для +этой +последовательности +не +найден +активный +монитор. < /translation> +< /message> +< message > + + Open +Project < /source> +< translation > Открыть +проект < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Текстура < /translation> +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::CrashHandlerDialog < /name> + < message > + Olive < /source> + < translation +type = "vanished" > Olive < /translation> + < /message> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "vanished" > К +сожалению, Olive +упал.Помогите +нам +исправить +ошибку, отправив +отчёт +об +ошибке. < /translation> +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation > Опишите +свои +действия +макимально +подробно.По +возможности +перечислите +шаги, следуя +которым +можно +воспроизвести +падение. < /translation> +< /message> +< message > + + Crash +Report: +< translation > Отчет +о +падении: +< /message> +< message > + + Send +Error +Report < /source> +< translation > Отправить +отчет < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > Не +отправлять < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > Создаётся +отчёт +о +падении +программы… +< /message> +< message > + + Upload +Failed < /source> +< translation > Не +удалось +загрузить < /translation> +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -Восстанавливаемые проекты по-прежнему доступны здесь: %1 - - - - The following project versions have been auto-saved: - Следующие версии проектов были автоматически сохранены: - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "vanished" > Не +удалось +отправить +отчёт +об +ошибке.Попробуйте +ещё +раз +позднее. < /translation> +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "vanished" > Нет +описания +ошибки < /translation> +< /message> +< message > +Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "vanished" > Вы +точно +хотите +отправить +отчёт +об +ошибке +без +описания, как +программа +упала ? +< /message> +< message > + + + Failed +to +send +report < /source> +< translation > Не +удалось +отправить +отчёт < /translation> +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation > Не +удалось +найти +отладочные +символы, чтобы +отправить +отчёт.Это +проблема +сборки +программы.Сообщите +об +этом +автору +сборки. < /translation> +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation > Подтвердить +закрытие < /translation> +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation > Отчёт о +падении +всё +ещё +загружается.Если +сейчас +закрыть +окно, отчёт +может +не +дойти +до +разработчиков.Вы +точно +хотите +закрыть +окно ? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + +Texture < /source> +< translation > Текстура < /translation> +< /message> +< message > + +Left < /source> +< translation > Слева < /translation> +< /message> +< message > + +Top < /source> +< translation > Сверху < /translation> +< /message> +< message > + +Right < /source> +< translation > Справа < /translation> +< /message> +< message > + +Bottom < /source> +< translation > Снизу < /translation> +< /message> +< message > + +Feather < /source> +< translation > Растушевка < /translation> +< /message> +< message > + +Crop < /source> +< translation > Обрезка < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation > Обрезать +края +кадра < /translation> +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > Наплыв < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation > Плавный +переход +между +двумя +клипами. < /translation> +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > Редактор +кривых < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > Линейный < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Безье < /translation> +< /message> +< message > + +Hold < /source> +< translation > Константа < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Вход < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > Синий < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > Способ < /translation> +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Цвет < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation > Дисковый +кэш: % +1 < /translation> +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation > Параметры +кэша +на +диске < /translation> +< /message> +< message > + + Maximum +Disk +Cache: +< translation > Макс.кэш +на +диске: +< /message> +< message > + + % 1 +GB < /source> +< translation > % 1 +Гбайт < /translation> +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation > Очистить +дисковый +кэш < /translation> +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation > Автоматически +стирать +при +закрытии < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation > Вы действительно +хотите +стереть +дисковый +кэш +в & apos; +% +1 & apos; + ? + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation > Дисковый +кэш +очищен < /translation> +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation > Дисковый +кэш +частично +очищен < /translation> +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation > Ошибка +дискового +кэша < /translation> +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation > Дисковый +кэш < /translation> +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation > Не +удалось +открыть +дисковый +кеш +в & quot; +% +1 & quot; +. +Попробуйте +указать +другую +папку. < /translation> +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Вход < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > Дисплей < /translation> +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Вид < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Направление < /translation> +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Текстура < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Цвет < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Непрозрачность < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > Прошло +: % +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > Осталось +: % +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation > Дополнительные +параметры < /translation> +< /message> +< message > + +Pixel < /source> +< translation > Пиксели < /translation> +< /message> +< message > + + Pixel +Format: +< translation > Формат +: + +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Performance < /source> +< translation > Производительность < /translation> +< /message> +< message > + + Threads +: + +< translation > Потоков +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > Кодек +: + +< /message> +< message > + + Sample +Rate: +< translation > Частота +дискр. +: + +< /message> +< message > + + Channel +Layout: +< translation > Схема +каналов: +< /message> +< message > + + Format +: + +< translation > Формат +: + +< /message> +< message > + + Bit +Rate: +< translation > Скорость +потока: +< /message> +< message > + + % 1 +kbps < /source> +< translation > % 1 +Кбит / с < /translation> +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + H +.264 < /source> +< translation > H +.264 < /translation> +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > H +.265 < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +ProRes < /source> +< translation > ProRes < /translation> +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +MP2 < /source> +< translation > MP2 < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +AAC < /source> +< translation > AAC < /translation> +< /message> +< message > + +PCM(Uncompressed) < /source> +< translation > PCM(несжатый) < /translation> +< /message> +< message > + +FLAC < /source> +< translation > FLAC < /translation> +< /message> +< message > + +Opus < /source> +< translation > Opus < /translation> +< /message> +< message > + +Vorbis < /source> +< translation > Vorbis < /translation> +< /message> +< message > + +VP9 < /source> +< translation > VP9 < /translation> +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation > SubRip +SRT < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Неизвестно < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > Имя +файла: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation > Профиль +: + +< /message> +< message > + + Range +: + +< translation > Диапазон +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation > Вся +последовательность < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > От +входа +от +выхода < /translation> +< /message> +< message > + + Format +: + +< translation > Формат +: + +< /message> +< message > + + Export +Video < /source> +< translation > Экспорт +видео < /translation> +< /message> +< message > + + Export +Audio < /source> +< translation > Экспорт +звука < /translation> +< /message> +< message > +Export +Subtitle < /source> +< translation +type = "vanished" > Экспорт +субтитров < /translation> +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Видео < /translation> +< /message> +< message > + +Audio < /source> +< translation > Звук < /translation> +< /message> +< message > + +Subtitles < /source> +< translation > Субтитры < /translation> +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > Экспортировать < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Отмена < /translation> +< /message> +< message > + +Preview < /source> +< translation > Предпросмотр < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation > Некорректные +параметры < /translation> +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation > Видео, звук +и +субтитры +отключены.Экспортировать +нечего. < /translation> +< /message> +< message > + + + + Invalid +filename < /source> +< translation > Некорректное +имя +файла < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > По +умолчанию < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation > Подтвердить +перезапись < /translation> +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation > Некорректные +параметры < /translation> +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation > Ширина +и +высота +должны +делиться +на +2 +без +остатка. < /translation> +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + Matroska +Video < /source> +< translation > Matroska < /translation> +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > MPEG - 4 < /translation> +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +QuickTime < /source> +< translation > QuickTime < /translation> +< /message> +< message > + + Wave +Audio < /source> +< translation > Wave +Audio < /translation> +< /message> +< message > + +AIFF < /source> +< translation > AIFF < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +FLAC < /source> +< translation > FLAC < /translation> +< /message> +< message > + +Ogg < /source> +< translation > Ogg < /translation> +< /message> +< message > + +WebM < /source> +< translation > WebM < /translation> +< /message> +< message > + + SubRip +SRT < /source> +< translation > SubRip +SRT < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Неизвестно < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Видео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Звук < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > Субтитры < /translation> +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Название +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation > Кодек +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation > Экспортируется & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation > Не +удалось +создать +кодировщик < /translation> +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation > Не +удалось +открыть +файл: % +1 < /translation> +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation > Не +удалось +перезаписать & quot; +% +1 & quot; +. +Экспорт +сохранен +под +именем & quot; +% +2 & quot; +. + +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + +General < /source> +< translation > Общие < /translation> +< /message> +< message > + + Width +: + +< translation > Ширина +: + +< /message> +< message > + + Height +: + +< translation > Высота +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > Сохранить +пропорции: +< /message> +< message > + + Scaling +Method: +< translation > Тип +масштабирования: +< /message> +< message > + +Fit < /source> +< translation > Уместить < /translation> +< /message> +< message > + +Stretch < /source> +< translation > Растянуть < /translation> +< /message> +< message > + +Crop < /source> +< translation > Обрезать < /translation> +< /message> +< message > + + Frame +Rate: +< translation > Частота +кадров: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > Пропорции +пикселя: +< /message> +< message > + + Interlacing +: + +< translation > Чересстрочность +: + +< /message> +< message > + + Quality +: + +< translation > Качество +: + +< /message> +< message > + +Codec < /source> +< translation > Кодек < /translation> +< /message> +< message > + + Codec +: + +< translation > Кодек +: + +< /message> +< message > + +Advanced < /source> +< translation > Дополнительно < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation > % 1 +: % +2 % 3 < /translation> +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > + < /message> + < message > + Unknown +internal +codec < /source> +< translation +type = "vanished" > Неизвестный +внутренний +кодек < /translation> +< /message> +< message > +Failed +to +find +codec +for % +1 < /source> +< translation +type = "vanished" > Не +удалось +найти +кодек +для % 1 < /translation> +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation > Открыть +каталог < /translation> +< /message> +< message > + + Open +File < /source> +< translation > Открыть +файл < /translation> +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Вход < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > По +горизонтали < /translation> +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > По +вертикали < /translation> +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > % 1 +Дб < /translation> +< /message> +< message > + + % 1 % +< translation > % 1 % +< /message> +< message > + + ∞ +< translation >∞ +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + +Children < /source> +< translation > Потомки < /translation> +< /message> +< message > + +Folder < /source> +< translation > Папка < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation > Организовать +объекты +в +единую +коллекцию. < /translation> +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation > Имя +файла < /translation> +< /message> +< message > +None < /source> +< translation +type = "vanished" > Нет < /translation> + < /message> + < message > + Loop < /source> + < translation +type = "obsolete" > Петля < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation > % 1 +: +Изображение - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation > % 1 +: +Видео - % 2 +x % 3 < /translation> +< /message> +< message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation > + % 1 +: +Звук - % n +канал, +% +2 +Гц < /numerusform> +< numerusform > % 1 +: +Звук - % n +канала, +% +2 +Гц < /numerusform> +< numerusform > % 1 +: +Звук - % n +каналов, +% +2 +Гц < /numerusform> +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > Видео < /translation> +< /message> +< message > + +Audio < /source> +< translation > Звук < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > Субтитры < /translation> +< /message> +< message > + +Unknown < /source> +< translation > Неизвестно < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation > Имя +файла: % +1 < /translation> +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Media < /source> +< translation > Медиа < /translation> +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation > Вставить +видео, звук +или +статическое +изображение +в +проект. < /translation> +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Название +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > Субтитры < /translation> +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > Неизвестно < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + +Footage < /source> +< translation > Видеоматериал < /translation> +< /message> +< message > + + Filename < /source> + < translation > Имя +файла < /translation> +< /message> +< message > + +Actions < /source> +< translation > Действия < /translation> +< /message> +< message > + +Browse < /source> +< translation > Просмотр < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation > Связать +видеоматериалы +заново < /translation> +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation > Связать & quot; +% +1 & quot; + +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "vanished" > Все +файлы < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation > Просмотр +видеоматериала < /translation> +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation > Заказная +частота +кадров < /translation> +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + +Gap < /source> +< translation > Интервал < /translation> +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation > Нода +в +единицах +времени, представляющая +пустое +пространство. < /translation> +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > Основа < /translation> +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > Целевая +скорость +потока(Мбит / с) +: + +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > Макс.скорость +потока(Мбит / с) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > В +два +прохода < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > Целевой +размер +файла(Мбайт) +: + +< /message> +< message > + + Two - Pass < /source> + < translation > В +два +прохода < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation > Способ +сжатия: +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation > Постоянная +скорость +потока < /translation> +< /message> +< message > + + Target +Bit +Rate < /source> +< translation > Целевая +скорость +потока < /translation> +< /message> +< message > + + Target +File +Size < /source> +< translation > Целевой +размер +файла < /translation> +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation > Последовательность +изображений: +< /message> +< message > + + Frame +to +Export: +< translation > Экспортируемый +кадр: +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + +None(Progressive) < /source> +< translation > Нет(прогрессивно) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation > Свойства +ключевого +кадра < /translation> +< /message> +< message > + + In +: + +< translation > Вход +: + +< /message> +< message > + + Out +: + +< translation > Выход +: + +< /message> +< message > + +Linear < /source> +< translation > Линейный < /translation> +< /message> +< message > + +Hold < /source> +< translation > Константа < /translation> +< /message> +< message > + +Bezier < /source> +< translation > Безье < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Линейный < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безье < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Константа < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > С & войства < /translation> +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > Линейный < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > Безье < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > Константа < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "vanished" > С & войства < /translation> + < /message> + < /context> + < context > + olive::LoadOTIOTask < /name> + < message > + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; + +< translation +type = "vanished" > Не +удалось +загрузить +OpenTimelineIO +из +файла & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -To remedy this, please do one of the following: +OpenTimelineIO +Error: -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - Сохранить проект как - - - - Load Project - Загрузка проекта - - - - Label Node - Метка ноды - - - - Set node label - Указать метку ноды - - - - Sequence %1 - Последовательность %1 - - - - Cannot open recent project - Не удалось открыть недавний проект - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - Проект"%1" не существует. Хотите удалить этот файл из списка недавно открывавшихся? - - - - Unsaved Changes - Несохраненные изменения - - - - The project '%1' has unsaved changes. Would you like to save them? - В проекте '%1' остались несохраненные изменения. Сохранить их? - - - - Save - Сохранить - - - Save All - Сохранить все - - - - Don't Save - Не сохранять - - - Don't Save All - Не сохранять все - - - - Failed to cache sequence - Не удалось закэшировать последовательность - - - - No active viewer found with this sequence. - Для этой последовательности не найден активный монитор. - - - - Open Project - Открыть проект - - - - olive::CornerPinDistortNode - - - Texture - Текстура - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - К сожалению, Olive упал. Помогите нам исправить ошибку, отправив отчёт об ошибке. - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - Опишите свои действия макимально подробно. По возможности перечислите шаги, следуя которым можно воспроизвести падение. - - - - Crash Report: - Отчет о падении: - - - - Send Error Report - Отправить отчет - - - - Don't Send - Не отправлять - - - - Waiting for crash report to be generated... - Создаётся отчёт о падении программы… - - - - Upload Failed - Не удалось загрузить - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: - -%1 - - - - - You must write a description to submit this crash report. - - - - Failed to send error report. Please try again later. - Не удалось отправить отчёт об ошибке. Попробуйте ещё раз позднее. - - - No Crash Summary - Нет описания ошибки - - - Are you sure you want to send an error report with no crash summary? - Вы точно хотите отправить отчёт об ошибке без описания, как программа упала? - - - - - Failed to send report - Не удалось отправить отчёт - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - Не удалось найти отладочные символы, чтобы отправить отчёт. Это проблема сборки программы. Сообщите об этом автору сборки. - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - Подтвердить закрытие - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - Отчёт о падении всё ещё загружается. Если сейчас закрыть окно, отчёт может не дойти до разработчиков. Вы точно хотите закрыть окно? - - - - olive::CropDistortNode - - - Texture - Текстура - - - - Left - Слева - - - - Top - Сверху - - - - Right - Справа - - - - Bottom - Снизу - - - - Feather - Растушевка - - - - Crop - Обрезка - - - - Crop the edges of an image. - Обрезать края кадра - - - - olive::CrossDissolveTransition - - - Cross Dissolve - Наплыв - - - - Smoothly transition between two clips. - Плавный переход между двумя клипами. - - - - olive::CurvePanel - - - Curve Editor - Редактор кривых - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Линейный - - - - Bezier - Безье - - - - Hold - Константа - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - Вход - - - - Key Color - - - - - Green - - - - - Blue - Синий - - - - Method - Способ - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - Цвет - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - Дисковый кэш: %1 - - - - Disk Cache Settings - Параметры кэша на диске - - - - Maximum Disk Cache: - Макс. кэш на диске: - - - - %1 GB - %1 Гбайт - - - - - - Clear Disk Cache - Очистить дисковый кэш - - - - Automatically clear disk cache on close - Автоматически стирать при закрытии - - - - Are you sure you want to clear the disk cache in '%1'? - Вы действительно хотите стереть дисковый кэш в '%1'? - - - - Disk Cache Cleared - Дисковый кэш очищен - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - Дисковый кэш частично очищен - - - - olive::DiskManager - - - - Disk Cache Error - Ошибка дискового кэша - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - Дисковый кэш - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - Не удалось открыть дисковый кеш в "%1". Попробуйте указать другую папку. - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - Вход - - - - Display - Дисплей - - - - View - Вид - - - - Direction - Направление - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - Текстура - - - - Color - Цвет - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Непрозрачность - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - Прошло: %1 - - - - Remaining: %1 - Осталось: %1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Дополнительные параметры - - - - Pixel - Пиксели - - - - Pixel Format: - Формат: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - Производительность - - - - Threads: - Потоков: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Кодек: - - - - Sample Rate: - Частота дискр.: - - - - Channel Layout: - Схема каналов: - - - - Format: - Формат: - - - - Bit Rate: - Скорость потока: - - - - %1 kbps - %1 Кбит/с - - - - olive::ExportCodec - - - DNxHD - DNxHD - - - - H.264 - H.264 - - - - H.264 RGB - - - - - H.265 - H.265 - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - ProRes - ProRes - - - - Cineform - - - - - TIFF - TIFF - - - - MP2 - MP2 - - - - MP3 - MP3 - - - - AAC - AAC - - - - PCM (Uncompressed) - PCM (несжатый) - - - - FLAC - FLAC - - - - Opus - Opus - - - - Vorbis - Vorbis - - - - VP9 - VP9 - - - - AV1 - - - - - SubRip SRT - SubRip SRT - - - - Unknown - Неизвестно - - - - olive::ExportDialog - - - Filename: - Имя файла: - - - - Browse for exported file filename - - - - - Preset: - Профиль: - - - - Range: - Диапазон: - - - - Entire Sequence - Вся последовательность - - - - In to Out - От входа от выхода - - - - Format: - Формат: - - - - Export Video - Экспорт видео - - - - Export Audio - Экспорт звука - - - Export Subtitle - Экспорт субтитров - - - - Export Subtitles - - - - - Video - Видео - - - - Audio - Звук - - - - Subtitles - Субтитры - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Экспортировать - - - - Cancel - Отмена - - - - Preview - Предпросмотр - - - - Invalid parameters - Некорректные параметры - - - - Video, audio, and subtitles are disabled. There's nothing to export. - Видео, звук и субтитры отключены. Экспортировать нечего. - - - - - - Invalid filename - Некорректное имя файла - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Default - По умолчанию - - - - Last Used - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - - Confirm Overwrite - Подтвердить перезапись - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - Некорректные параметры - - - - Width and height must be multiples of 2. - Ширина и высота должны делиться на 2 без остатка. - - - - olive::ExportFormat - - - DNxHD - DNxHD - - - - Matroska Video - Matroska - - - - MPEG-4 Video - MPEG-4 - - - - MPEG-4 Audio - - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - TIFF - TIFF - - - - QuickTime - QuickTime - - - - Wave Audio - Wave Audio - - - - AIFF - AIFF - - - - MP3 - MP3 - - - - FLAC - FLAC - - - - Ogg - Ogg - - - - WebM - WebM - - - - SubRip SRT - SubRip SRT - - - - Unknown - Неизвестно - - - - olive::ExportFormatComboBox - - - Video - Видео - - - - Audio - Звук - - - - Subtitle - Субтитры - - - - olive::ExportSavePresetDialog - - - Name: - Название: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Кодек: - - - - olive::ExportTask - - - Exporting "%1" - Экспортируется "%1" - - - - Failed to create encoder - Не удалось создать кодировщик - - - - Failed to open file: %1 - Не удалось открыть файл: %1 - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - Не удалось перезаписать "%1". Экспорт сохранен под именем "%2". - - - - olive::ExportVideoTab - - - General - Общие - - - - Width: - Ширина: - - - - Height: - Высота: - - - - Maintain Aspect Ratio: - Сохранить пропорции: - - - - Scaling Method: - Тип масштабирования: - - - - Fit - Уместить - - - - Stretch - Растянуть - - - - Crop - Обрезать - - - - Frame Rate: - Частота кадров: - - - - Pixel Aspect Ratio: - Пропорции пикселя: - - - - Interlacing: - Чересстрочность: - - - - Quality: - Качество: - - - - Codec - Кодек - - - - Codec: - Кодек: - - - - Advanced - Дополнительно - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - %1: %2 %3 - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - Unknown internal codec - Неизвестный внутренний кодек - - - Failed to find codec for %1 - Не удалось найти кодек для %1 - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - Открыть каталог - - - - Open File - Открыть файл - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - Вход - - - - Horizontal - По горизонтали - - - - Vertical - По вертикали - - - - olive::FloatSlider - - - %1 dB - %1 Дб - - - - %1% - %1% - - - - ∞ - - - - - olive::Folder - - - Children - Потомки - - - - Folder - Папка - - - - Organize several items into a single collection. - Организовать объекты в единую коллекцию. - - - - olive::Footage - - - Filename - Имя файла - - - None - Нет - - - Loop - Петля - - - - %1: Image - %2x%3 - %1: Изображение - %2x%3 - - - - %1: Video - %2x%3 - %1: Видео - %2x%3 - - - - %1: Audio - %n Channel(s), %2Hz - - %1: Звук - %n канал, %2Гц - %1: Звук - %n канала, %2Гц - %1: Звук - %n каналов, %2Гц - - - - - %1: Subtitle - - - - - Video - Видео - - - - Audio - Звук - - - - Subtitle - Субтитры - - - - Unknown - Неизвестно - - - - Filename: %1 - Имя файла: %1 - - - - Invalid - - - - - Media - Медиа - - - - Import video, audio, or still image files into the composition. - Вставить видео, звук или статическое изображение в проект. - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - Название: - - - - Tracks: - - - - - Subtitles - Субтитры - - - - Unknown - Неизвестно - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - Видеоматериал - - - - Filename - Имя файла - - - - Actions - Действия - - - - Browse - Просмотр - - - - Relink Footage - Связать видеоматериалы заново - - - - Relink "%1" - Связать "%1" - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Все файлы - - - - olive::FootageViewerPanel - - - Footage Viewer - Просмотр видеоматериала - - - - olive::FrameRateComboBox - - - Custom Frame Rate - Заказная частота кадров - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - Интервал - - - - A time-based node that represents an empty space. - Нода в единицах времени, представляющая пустое пространство. - - - - olive::GeneratorWithMerge - - - Base - Основа - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - Целевая скорость потока (Мбит/с): - - - - Maximum Bit Rate (Mbps): - Макс. скорость потока (Мбит/с): - - - - Two-Pass - В два прохода - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Целевой размер файла (Мбайт): - - - - Two-Pass - В два прохода - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - Способ сжатия: - - - - Constant Rate Factor - Постоянная скорость потока - - - - Target Bit Rate - Целевая скорость потока - - - - Target File Size - Целевой размер файла - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - Последовательность изображений: - - - - Frame to Export: - Экспортируемый кадр: - - - - olive::InterlacedComboBox - - - None (Progressive) - Нет (прогрессивно) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - Свойства ключевого кадра - - - - In: - Вход: - - - - Out: - Выход: - - - - Linear - Линейный - - - - Hold - Константа - - - - Bezier - Безье - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Линейный - - - - Bezier - Безье - - - - Hold - Константа - - - - P&roperties - С&войства - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Линейный - - - Bezier - Безье - - - Hold - Константа - - - P&roperties - С&войства - - - - olive::LoadOTIOTask - - Failed to load OpenTimelineIO from file "%1" - Не удалось загрузить OpenTimelineIO из файла "%1" - - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - Неизвестный корневой элемент OpenTimelineIO - - - - Sequence %1 - Последовательность %1 - - - - Failed to load clip - Не удалось загрузить клип - - - - olive::MainMenu - - - Ctrl+O - Ctrl+O - - - - Ctrl+S - Ctrl+S - - - - Ctrl+Shift+S - Ctrl+Shift+S - - - - F12 - F12 - - - - Ctrl+I - Ctrl+I - - - - Ctrl+M - Ctrl+M - - - - Shift+F10 - - - - - Ctrl+Z - Ctrl+Z - - - - Ctrl+Shift+Z - Ctrl+Shift+Z - - - - Backspace - Backspace - - - - Ctrl+A - Ctrl+A - - - - Ctrl+Shift+A - Ctrl+Shift+A - - - - , - , - - - - . - . - - - - Q - Q - - - - W - W - - - - Ctrl+Alt+Q - Ctrl+Alt+Q - - - - Ctrl+Alt+W - Ctrl+Alt+W - - - - Alt+Left - Alt+Left - - - - Alt+Right - Alt+Right - - - - [ - [ - - - - ] - ] - - - - ; - ; - - - - ' - - - - - M - М - - - - = - = - - - - - - - - - - - Ctrl+= - Ctrl+= - - - - Ctrl+- - Ctrl+- - - - - \ - + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation > Неизвестный +корневой +элемент +OpenTimelineIO < /translation> +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > Последовательность % 1 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation > Не +удалось +загрузить +клип < /translation> +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + +Ctrl + O < /source> +< translation > Ctrl + O < /translation> +< /message> +< message > + +Ctrl + S < /source> +< translation > Ctrl + S < /translation> +< /message> +< message > + +Ctrl + Shift + S < /source> +< translation > Ctrl + Shift + S < /translation> +< /message> +< message > + +F12 < /source> +< translation > F12 < /translation> +< /message> +< message > + +Ctrl + I < /source> +< translation > Ctrl + I < /translation> +< /message> +< message > + +Ctrl + M < /source> +< translation > Ctrl + M < /translation> +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl + Z < /source> +< translation > Ctrl + Z < /translation> +< /message> +< message > + +Ctrl + Shift + Z < /source> +< translation > Ctrl + Shift + Z < /translation> +< /message> +< message > + +Backspace < /source> +< translation > Backspace < /translation> +< /message> +< message > + +Ctrl + A < /source> +< translation > Ctrl + A < /translation> +< /message> +< message > + +Ctrl + Shift + A < /source> +< translation > Ctrl + Shift + A < /translation> +< /message> +< message > + + , +< translation >, +< /message> +< message > + + +. + +< translation > +. + +< /message> +< message > + +Q < /source> +< translation > Q < /translation> +< /message> +< message > + +W < /source> +< translation > W < /translation> +< /message> +< message > + +Ctrl + Alt + Q < /source> +< translation > Ctrl + Alt + Q < /translation> +< /message> +< message > + +Ctrl + Alt + W < /source> +< translation > Ctrl + Alt + W < /translation> +< /message> +< message > + +Alt + Left < /source> +< translation > Alt + Left < /translation> +< /message> +< message > + +Alt + Right < /source> +< translation > Alt + Right < /translation> +< /message> +< message > + +[ +< translation > [ +< /message> +< message > + + ] < /source> +< translation >] < /translation> +< /message> +< message > + + ; + +< translation >; + +< /message> +< message > + + & apos; + +< translation > +< /message> +< message > + +M < /source> +< translation > М < /translation> +< /message> +< message > + + = +< translation >= +< /message> +< message > + +- +< translation > - +< /message> +< message > + +Ctrl += +< translation > Ctrl += +< /message> +< message > + +Ctrl + - +< translation > Ctrl + - +< /message> +< message > + + \ +< translation > \ - - - - F11 - F11 - - - - Home - Home - - - - Left - Слева - - - - Space - Space - - - - Shift+Space - Shift+Space - - - - Right - Справа - - - - End - End - - - - Up - Up - - - - Down - Down - - - - Shift+I - Shift+I - - - - Shift+O - Shift+O - - - - J - J - - - - K - K - - - - L - Б - - - - ` - ` - - - - V - V - - - - D - - - - - X - X - - - - B - B - - - - N - N - - - - C - C - - - - Y - Y - - - - U - - - - - H - H - - - - Z - Z - - - - T - T - - - - A - A - - - - R - R - - - - S - S - - - - Ctrl+, - Ctrl+, - - - - / - / - - - - &Save '%1' - Со&хранить '%1' - - - - Save '%1' &As - Сохранить '%1' к&ак - - - - Project Properties - - - - Close '%1' - Закрыть '%1' - - - Close All Except '%1' - Закрыть все кроме '%1' - - - - &Save Project - &Сохранить проект - - - - Save Project &As - Сохранить проект &как - - - Close Project - Закрыть проект - - - Close All Except Current Project - Закрыть все проекты кроме текущего - - - - (None) - (нет) - - - - &File - &Файл - - - - &New - &Создать - - - - &Open Project - &Открыть проект - - - - Open &Recent - Открыть из &недавнего - - - - &Clear Recent List - О&чистить список недавних - - - Sa&ve All Projects - Сохра&нить все проекты - - - - Revert - - - - - &Import... - &Импортировать… - - - - &Export - &Экспортировать - - - - &Media... - &Медиаданные… - - - Close All Projects - Закрыть все проекты - - - - E&xit - В&ыход - - - - &Edit - &Правка - - - - Delete (alt) - Удалить (alt) - - - - Insert - Вставить - - - - Overwrite - Переписать - - - - Select &All - Выд&елить всё - - - - Deselect All - Снять выделение - - - - Ripple to In Point - Сдвиг до точки входа - - - - Ripple to Out Point - Сдвиг до точки выхода - - - - Edit to In Point - Правка до точки входа - - - - Edit to Out Point - Правка до точки выхода - - - - Nudge Left - Сдвинуть влево - - - - Nudge Right - Сдвинуть вправо - - - - Move In Point to Playhead - Точка входа к указателю воспроизведения - - - - Move Out Point to Playhead - Точка выхода к указателю воспроизведения - - - - Delete In/Out Point - Удалить точку входа/выхода - - - - Ripple Delete In/Out Point - Удалить со сдвигом точку входа/выхода - - - - Set/Edit Marker - Установить/Изменить маркер - - - - &View - &Вид - - - - Zoom In - Приблизить - - - - Zoom Out - Отдалить - - - - Increase Track Height - Увеличить высоту дорожки - - - - Decrease Track Height - Уменьшить высоту дорожки - - - - Toggle Show All - Показывать весь проект - - - - Full Screen - Полноэкранный режим - - - - Full Screen Viewer - Просмотр в полноэкранном режиме - - - - &Playback - Вос&произведение - - - - Go to Start - К началу - - - - Previous Frame - К предыдущему кадру - - - - Play/Pause - Воспроизведение/Пауза - - - - Play In to Out - Проиграть от входа до выхода - - - - Next Frame - К следующему кадру - - - - Go to End - В конец - - - - Go to Previous Cut - К предыдущему отрезу - - - - Go to Next Cut - К следующему отрезу - - - - Go to In Point - К точке входа - - - - Go to Out Point - К точке выхода - - - - Shuttle Left - Уменьшить скорость - - - - Shuttle Stop - Пауза - - - - Shuttle Right - Увеличить скорость - - - - Loop - Петля - - - - &Sequence - П&оследовательность - - - - Cache Entire Sequence - Закэшировать всю последовательность - - - - Cache Sequence In/Out - Закэшировать вход/выход последовательности - - - - Clear Disk Cache - Очистить дисковый кэш - - - - &Window - &Окно - - - - Maximize Panel - Развернуть панель - - - Lock Panels - Закрепить панели - - - - Reset to Default Layout - Вернуть исходный вид панелей - - - - &Tools - &Инструменты - - - - Pointer Tool - Указатель - - - - Track Select Tool - - - - - Edit Tool - Выделение - - - - Ripple Tool - Монтаж со сдвигом - - - - Rolling Tool - Монтаж с совмещением - - - - Razor Tool - Подрезка - - - - Slip Tool - Прокрутка с совмещением - - - - Slide Tool - Прокрутка - - - - Hand Tool - Навигация - - - - Zoom Tool - Масштаб - - - - Transition Tool - Переход - - - - Add Tool - Добавление - - - - Record Tool - Запись - - - - Enable Snapping - Включить прилипание - - - - Proxy Settings... - - - - - Preferences - Параметры - - - - Add Tool Item - - - - - &Help - &Справка - - - - A&ction Search - &Найти команду - - - - Send &Feedback... - &Дать обратную связь… - - - - &About... - &О программе… - - - - olive::MainStatusBar - - - Welcome to %1 %2 - Приветствуем в %1 %2 - - - - Running %n background task(s) - - Выполняется %n фоновая задача - Выполняются %n фоновые задачи - Выполняется %n фоновых задач - - - - - olive::MainWindow - - - Set Footage Workarea - - - - - Driver Warning - Предупреждение о драйвере - - - - Oak Video Editor has detected your system is using the Nouveau graphics driver. +< /message> +< message > + +F11 < /source> +< translation > F11 < /translation> +< /message> +< message > + +Home < /source> +< translation > Home < /translation> +< /message> +< message > + +Left < /source> +< translation > Слева < /translation> +< /message> +< message > + +Space < /source> +< translation > Space < /translation> +< /message> +< message > + +Shift + Space < /source> +< translation > Shift + Space < /translation> +< /message> +< message > + +Right < /source> +< translation > Справа < /translation> +< /message> +< message > + +End < /source> +< translation > End < /translation> +< /message> +< message > + +Up < /source> +< translation > Up < /translation> +< /message> +< message > + +Down < /source> +< translation > Down < /translation> +< /message> +< message > + +Shift + I < /source> +< translation > Shift + I < /translation> +< /message> +< message > + +Shift + O < /source> +< translation > Shift + O < /translation> +< /message> +< message > + +J < /source> +< translation > J < /translation> +< /message> +< message > + +K < /source> +< translation > K < /translation> +< /message> +< message > + +L < /source> +< translation > Б < /translation> +< /message> +< message > + +` + ` < /translation> +< /message> +< message > + +V < /source> +< translation > V < /translation> +< /message> +< message > + + D < /source> + < translation +type = "unfinished" > +< /message> +< message > + +X < /source> +< translation > X < /translation> +< /message> +< message > + +B < /source> +< translation > B < /translation> +< /message> +< message > + +N < /source> +< translation > N < /translation> +< /message> +< message > + +C < /source> +< translation > C < /translation> +< /message> +< message > + +Y < /source> +< translation > Y < /translation> +< /message> +< message > + +U < /source> +< translation > +< /message> +< message > + +H < /source> +< translation > H < /translation> +< /message> +< message > + +Z < /source> +< translation > Z < /translation> +< /message> +< message > + +T < /source> +< translation > T < /translation> +< /message> +< message > + +A < /source> +< translation > A < /translation> +< /message> +< message > + +R < /source> +< translation > R < /translation> +< /message> +< message > + +S < /source> +< translation > S < /translation> +< /message> +< message > + + Ctrl +, +< translation > Ctrl +, +< /message> +< message > + + / +< translation > / +< /message> +< message > + + & Save & apos; +% +1 & apos; + +< translation > Со & хранить & apos; +% +1 & apos; + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > Сохранить & apos; +% +1 & apos; +к & ак < /translation> +< /message> +< message > + + Project +Properties < /source> +< translation +type = "unfinished" > + < /message> + < message > + Close & apos; +% +1 & apos; + +< translation +type = "vanished" > Закрыть & apos; +% +1 & apos; + +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "vanished" > Закрыть +все +кроме & apos; +% +1 & apos; + +< /message> +< message > + + & Save +Project < /source> +< translation > & Сохранить +проект < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation > Сохранить +проект & как < /translation> +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > Закрыть +проект < /translation> +< /message> +< message > +Close +All +Except +Current +Project < /source> +< translation +type = "vanished" > Закрыть +все +проекты +кроме +текущего < /translation> +< /message> +< message > + +(None) < /source> +< translation > (нет) < /translation> +< /message> +< message > + + & File < /source> +< translation > & Файл < /translation> +< /message> +< message > + + & New < /source> +< translation > & Создать < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation > & Открыть +проект < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation > Открыть +из & недавнего < /translation> +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > О & чистить +список +недавних < /translation> +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > Сохра & нить +все +проекты < /translation> +< /message> +< message > + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation > & Импортировать… +< /message> +< message > + + & Export < /source> +< translation > & Экспортировать < /translation> +< /message> +< message > + + & Media +... + +< translation > & Медиаданные… +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > Закрыть +все +проекты < /translation> +< /message> +< message > + +E & xit < /source> +< translation > В & ыход < /translation> +< /message> +< message > + + & Edit < /source> +< translation > & Правка < /translation> +< /message> +< message > + +Delete(alt) < /source> +< translation > Удалить(alt) < /translation> +< /message> +< message > + +Insert < /source> +< translation > Вставить < /translation> +< /message> +< message > + +Overwrite < /source> +< translation > Переписать < /translation> +< /message> +< message > + + Select & All < /source> + < translation > Выд & елить +всё < /translation> +< /message> +< message > + + Deselect +All < /source> +< translation > Снять +выделение < /translation> +< /message> +< message > + + Ripple +to +In +Point < /source> +< translation > Сдвиг +до +точки +входа < /translation> +< /message> +< message > + + Ripple +to +Out +Point < /source> +< translation > Сдвиг +до +точки +выхода < /translation> +< /message> +< message > + + Edit +to +In +Point < /source> +< translation > Правка +до +точки +входа < /translation> +< /message> +< message > + + Edit +to +Out +Point < /source> +< translation > Правка +до +точки +выхода < /translation> +< /message> +< message > + + Nudge +Left < /source> +< translation > Сдвинуть +влево < /translation> +< /message> +< message > + + Nudge +Right < /source> +< translation > Сдвинуть +вправо < /translation> +< /message> +< message > + + Move +In +Point +to +Playhead < /source> +< translation > Точка +входа +к +указателю +воспроизведения < /translation> +< /message> +< message > + + Move +Out +Point +to +Playhead < /source> +< translation > Точка +выхода +к +указателю +воспроизведения < /translation> +< /message> +< message > + + Delete +In / Out +Point < /source> +< translation > Удалить +точку +входа / выхода < /translation> +< /message> +< message > + + Ripple +Delete +In / Out +Point < /source> +< translation > Удалить +со +сдвигом +точку +входа / выхода < /translation> +< /message> +< message > + + Set / Edit +Marker < /source> +< translation > Установить / Изменить +маркер < /translation> +< /message> +< message > + + & View < /source> +< translation > & Вид < /translation> +< /message> +< message > + + Zoom +In < /source> +< translation > Приблизить < /translation> +< /message> +< message > + + Zoom +Out < /source> +< translation > Отдалить < /translation> +< /message> +< message > + + Increase +Track +Height < /source> +< translation > Увеличить +высоту +дорожки < /translation> +< /message> +< message > + + Decrease +Track +Height < /source> +< translation > Уменьшить +высоту +дорожки < /translation> +< /message> +< message > + + Toggle +Show +All < /source> +< translation > Показывать +весь +проект < /translation> +< /message> +< message > + + Full +Screen < /source> +< translation > Полноэкранный +режим < /translation> +< /message> +< message > + + Full +Screen +Viewer < /source> +< translation > Просмотр +в +полноэкранном +режиме < /translation> +< /message> +< message > + + & Playback < /source> +< translation > Вос & произведение < /translation> +< /message> +< message > + + Go +to +Start < /source> +< translation > К +началу < /translation> +< /message> +< message > + + Previous +Frame < /source> +< translation > К +предыдущему +кадру < /translation> +< /message> +< message > + +Play / Pause < /source> +< translation > Воспроизведение / Пауза < /translation> +< /message> +< message > + + Play +In +to +Out < /source> +< translation > Проиграть +от +входа +до +выхода < /translation> +< /message> +< message > + + Next +Frame < /source> +< translation > К +следующему +кадру < /translation> +< /message> +< message > + + Go +to +End < /source> +< translation > В +конец < /translation> +< /message> +< message > + + Go +to +Previous +Cut < /source> +< translation > К +предыдущему +отрезу < /translation> +< /message> +< message > + + Go +to +Next +Cut < /source> +< translation > К +следующему +отрезу < /translation> +< /message> +< message > + + Go +to +In +Point < /source> +< translation > К +точке +входа < /translation> +< /message> +< message > + + Go +to +Out +Point < /source> +< translation > К +точке +выхода < /translation> +< /message> +< message > + + Shuttle +Left < /source> +< translation > Уменьшить +скорость < /translation> +< /message> +< message > + + Shuttle +Stop < /source> +< translation > Пауза < /translation> +< /message> +< message > + + Shuttle +Right < /source> +< translation > Увеличить +скорость < /translation> +< /message> +< message > + +Loop < /source> +< translation > Петля < /translation> +< /message> +< message > + + & Sequence < /source> +< translation > П & оследовательность < /translation> +< /message> +< message > + + Cache +Entire +Sequence < /source> +< translation > Закэшировать +всю +последовательность < /translation> +< /message> +< message > + + Cache +Sequence +In / Out < /source> +< translation > Закэшировать +вход / выход +последовательности < /translation> +< /message> +< message > + + Clear +Disk +Cache < /source> +< translation > Очистить +дисковый +кэш < /translation> +< /message> +< message > + + & Window < /source> +< translation > & Окно < /translation> +< /message> +< message > + + Maximize +Panel < /source> +< translation > Развернуть +панель < /translation> +< /message> +< message > +Lock +Panels < /source> +< translation +type = "vanished" > Закрепить +панели < /translation> +< /message> +< message > + + Reset +to +Default +Layout < /source> +< translation > Вернуть +исходный +вид +панелей < /translation> +< /message> +< message > + + & Tools < /source> +< translation > & Инструменты < /translation> +< /message> +< message > + + Pointer +Tool < /source> +< translation > Указатель < /translation> +< /message> +< message > + + Track +Select +Tool < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Edit +Tool < /source> +< translation > Выделение < /translation> +< /message> +< message > + + Ripple +Tool < /source> +< translation > Монтаж +со +сдвигом < /translation> +< /message> +< message > + + Rolling +Tool < /source> +< translation > Монтаж +с +совмещением < /translation> +< /message> +< message > + + Razor +Tool < /source> +< translation > Подрезка < /translation> +< /message> +< message > + + Slip +Tool < /source> +< translation > Прокрутка +с +совмещением < /translation> +< /message> +< message > + + Slide +Tool < /source> +< translation > Прокрутка < /translation> +< /message> +< message > + + Hand +Tool < /source> +< translation > Навигация < /translation> +< /message> +< message > + + Zoom +Tool < /source> +< translation > Масштаб < /translation> +< /message> +< message > + + Transition +Tool < /source> +< translation > Переход < /translation> +< /message> +< message > + + Add +Tool < /source> +< translation > Добавление < /translation> +< /message> +< message > + + Record +Tool < /source> +< translation > Запись < /translation> +< /message> +< message > + + Enable +Snapping < /source> +< translation > Включить +прилипание < /translation> +< /message> +< message > + + Proxy +Settings +... + +< translation +type = "unfinished" > +< /message> +< message > + +Preferences < /source> +< translation > Параметры < /translation> +< /message> +< message > + + Add +Tool +Item < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Help < /source> +< translation > & Справка < /translation> +< /message> +< message > + + A & ction +Search < /source> +< translation > & Найти +команду < /translation> +< /message> +< message > + + Send & Feedback +... + +< translation > & Дать +обратную +связь… +< /message> +< message > + + & About +... + +< translation > & О +программе… +< /message> +< /context> +< context > +olive::MainStatusBar < /name> +< message > + + Welcome +to % 1 % 2 < /source> +< translation > Приветствуем +в % 1 % 2 < /translation> +< /message> +< message +numerus = "yes" > + + Running % n +background +task(s) < /source> +< translation > +Выполняется % n +фоновая +задача < /numerusform> +< numerusform > Выполняются % n +фоновые +задачи < /numerusform> +< numerusform > Выполняется % n +фоновых +задач < /numerusform> +< /translation> +< /message> +< /context> +< context > +olive::MainWindow < /name> +< message > + + Set +Footage +Workarea < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Driver +Warning < /source> +< translation > Предупреждение +о +драйвере < /translation> +< /message> +< message > + + Oak +Video +Editor +has +detected +your +system +is +using the +Nouveau +graphics +driver.This +driver +is +known +to +have +stability +and +performance +issues +with Oak Video +Editor.It +is +highly +recommended +you +install +the +proprietary +NVIDIA +driver +before +continuing +to +use +Oak +Video +Editor. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ManagedDisplayWidget < /name> +< message > + + Color +Space < /source> +< translation > Цветовое +пространство < /translation> +< /message> +< message > + + No +color +manager +connected < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Display < /source> +< translation > Дисплей < /translation> +< /message> +< message > + +View < /source> +< translation > Вид < /translation> +< /message> +< message > + +Look < /source> +< translation > Представление < /translation> +< /message> +< message > + +(None) < /source> +< translation > (нет) < /translation> +< /message> +< message > + + OpenColorIO +Error < /source> +< translation > Ошибка +OpenColorIO < /translation> +< /message> +< message > + + Failed +to +set +color +configuration: % +1 < /source> +< translation > Не +удалось +установить +конфигурацию +управления +цветом: % +1 < /translation> +< /message> +< /context> +< context > +olive::ManagedPixelSamplerWidget < /name> +< message > + +Display < /source> +< translation > Дисплей < /translation> +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MarkerPropertiesDialog < /name> +< message > + + Time < /source> + < translation +type = "unfinished" > Время < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > Вход +: + +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > Выход +: + +< /message> +< message > + + Color +: + +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Название +: + +< /message> +< message > + + (multiple) < /source> + < translation +type = "unfinished" > (больше +одного +) + +< /message> +< message > + + Edit +Markers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +point +must +be +less +than +or +equal +to +out +point. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Marker +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MaskDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Текстура < /translation> +< /message> +< message > + + Invert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > Растушевка < /translation> +< /message> +< message > + + Mask < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Apply +a +polygonal +mask. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MathNode < /name> +< message > + +Math < /source> +< translation > Математика < /translation> +< /message> +< message > + + Perform +a +mathematical +operation +between +two +values. < /source> +< translation > Выполнить +математическую +операцию +с +двумя +значениями < /translation> +< /message> +< message > + +Method < /source> +< translation > Способ < /translation> +< /message> +< message > + + + Value < /source> + < translation > Значение < /translation> + < /message> + < message > + Add < /source> + < translation +type = "vanished" > Сложение < /translation> + < /message> + < message > + Subtract < /source> + < translation +type = "vanished" > Вычитание < /translation> + < /message> + < message > + Multiply < /source> + < translation +type = "vanished" > Умножение < /translation> + < /message> + < message > + Divide < /source> + < translation +type = "vanished" > Деление < /translation> + < /message> + < message > + Power < /source> + < translation +type = "vanished" > Степень < /translation> +< /message> +< /context> +< context > +olive::MathNodeBase < /name> +< message > + + Add < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtract < /source> + < translation +type = "unfinished" > Вычитание < /translation> +< /message> +< message > + + Multiply < /source> + < translation +type = "unfinished" > Умножение < /translation> +< /message> +< message > + + Divide < /source> + < translation +type = "unfinished" > Деление < /translation> +< /message> +< message > + + Power < /source> + < translation +type = "unfinished" > Степень < /translation> +< /message> +< /context> +< context > +olive::MatrixGenerator < /name> +< message > + + Orthographic +Matrix < /source> +< translation > Прямоугольная +матрица < /translation> +< /message> +< message > + +Ortho < /source> +< translation > Орто < /translation> +< /message> +< message > + + Generate +an +orthographic +matrix +using position, rotation, and +scale. < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Position < /source> +< translation > Позиция < /translation> +< /message> +< message > + +Rotation < /source> +< translation > Вращение < /translation> +< /message> +< message > + +Scale < /source> +< translation > Масштаб < /translation> +< /message> +< message > + + Uniform +Scale < /source> +< translation > Пропорции < /translation> +< /message> +< message > + + Anchor +Point < /source> +< translation > Точка +привязки < /translation> +< /message> +< /context> +< context > +olive::MenuShared < /name> +< message > + +Ctrl + N < /source> +< translation > Ctrl + N < /translation> +< /message> +< message > + +Ctrl + Shift + N < /source> +< translation > Ctrl + Shift + N < /translation> +< /message> +< message > + +Ctrl + X < /source> +< translation > Ctrl + X < /translation> +< /message> +< message > + +Ctrl + C < /source> +< translation > Ctrl + C < /translation> +< /message> +< message > + +Ctrl + V < /source> +< translation > Ctrl + V < /translation> +< /message> +< message > + +Ctrl + Shift + V < /source> +< translation > Ctrl + Shift + V < /translation> +< /message> +< message > + +Ctrl + D < /source> +< translation > +< /message> +< message > + + F2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Del < /source> +< translation > Del < /translation> +< /message> +< message > + +Shift + Del < /source> +< translation > Shift + Del < /translation> +< /message> +< message > + +Ctrl + K < /source> +< translation > Ctrl + K < /translation> +< /message> +< message > + +Ctrl + R < /source> +< translation > Ctrl + R < /translation> +< /message> +< message > + +I < /source> +< translation > I < /translation> +< /message> +< message > + +O < /source> +< translation > O < /translation> +< /message> +< message > + +G < /source> +< translation > +< /message> +< message > + +Ctrl + Shift + D < /source> +< translation > Ctrl + Shift + D < /translation> +< /message> +< message > + +Ctrl + L < /source> +< translation > Ctrl + L < /translation> +< /message> +< message > + +Shift + E < /source> +< translation > Shift + E < /translation> +< /message> +< message > + + & Project < /source> +< translation > & Проект < /translation> +< /message> +< message > + + & Sequence < /source> +< translation > П & оследовательность < /translation> +< /message> +< message > + + & Folder < /source> +< translation > П & апка < /translation> +< /message> +< message > + +Cu & t < /source> +< translation > В & ырезать < /translation> +< /message> +< message > + +Cop & y < /source> +< translation > С & копировать < /translation> +< /message> +< message > + + & Paste < /source> +< translation > & Вставить < /translation> +< /message> +< message > + + Paste +Insert < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Duplicate < /source> + < translation > Сделать +копию < /translation> +< /message> +< message > + + Rename < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Delete < /source> +< translation > Удалить < /translation> +< /message> +< message > + + Ripple +Delete < /source> +< translation > Удалить +со +сдвигом < /translation> +< /message> +< message > + +Split < /source> +< translation > Разделить < /translation> +< /message> +< message > + + Speed / Duration < /source> + < translation > Скорость +и +длительность < /translation> +< /message> +< message > + + Set +In +Point < /source> +< translation > Установить +точку +входа < /translation> +< /message> +< message > + + Set +Out +Point < /source> +< translation > Установить +точку +выхода < /translation> +< /message> +< message > + + Reset +In +Point < /source> +< translation > Сбросить +точку +входа < /translation> +< /message> +< message > + + Reset +Out +Point < /source> +< translation > Сбросить +точку +выхода < /translation> +< /message> +< message > + + Clear +In / Out +Point < /source> +< translation > Очистить +точки +входа / выхода < /translation> +< /message> +< message > + + Add +Default +Transition < /source> +< translation > Добавить +переход +по +умолчанию < /translation> +< /message> +< message > + + Link / Unlink < /source> + < translation > Связать / Убрать +связь < /translation> +< /message> +< message > + +Enable / Disable < /source> +< translation > Включить / Отключить < /translation> +< /message> +< message > + +Nest < /source> +< translation > Вложить < /translation> +< /message> +< message > + +Frames < /source> +< translation > Кадры < /translation> +< /message> +< message > + + Drop +Frame < /source> +< translation > С +пропуском +кадров < /translation> +< /message> +< message > + + Non - Drop +Frame < /source> +< translation > Без +пропуска +кадров < /translation> +< /message> +< message > + +Milliseconds < /source> +< translation > Миллисекунды < /translation> +< /message> +< message > + +Seconds < /source> +< translation > Секунды < /translation> +< /message> +< /context> +< context > +olive::MergeNode < /name> +< message > + +Merge < /source> +< translation > Объединение < /translation> +< /message> +< message > + + Merge +two +textures +together. < /source> +< translation > Объединить +две +текстуры. < /translation> +< /message> +< message > + +Base < /source> +< translation > Основа < /translation> +< /message> +< message > + +Blend < /source> +< translation > Совмещение < /translation> +< /message> +< /context> +< context > +olive::MosaicFilterNode < /name> +< message > + +Texture < /source> +< translation > Текстура < /translation> +< /message> +< message > + + Horizontal < /source> + < translation > По +горизонтали < /translation> +< /message> +< message > + + Vertical < /source> + < translation > По +вертикали < /translation> +< /message> +< message > + +Mosaic < /source> +< translation > Мозаика < /translation> +< /message> +< message > + + Apply +a +pixelated +mosaic +filter +to +video. < /source> +< translation > Применить +эффект +пикселизованной +мозаики < /translation> +< /message> +< /context> +< context > +olive::MultiCamNode < /name> +< message > + + Multi - Cam < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Allows +easy +switching +between +multiple +sources. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Current < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Sources < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Sequence < /source> + < translation +type = "unfinished" > Последовательность < /translation> +< /message> +< message > + + Sequence +Type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Видео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Звук < /translation> +< /message> +< message > + + % 1 +: % +2 < /source> +< translation +type = "unfinished" > % 1 +: % +2 < /translation> +< /message> +< /context> +< context > +olive::MulticamPanel < /name> +< message > + + Multi - Cam < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MulticamWidget < /name> +< message > + + Switched +Multi - Camera +Source < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::Node < /name> + < message > + Input < /source> + < translation +type = "vanished" > Вход < /translation> +< /message> +< message > + + Output < /source> + < translation > Выход < /translation> + < /message> + < message > + General < /source> + < translation +type = "vanished" > Общие < /translation> +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > Включено < /translation> +< /message> +< message > + + Connected % 1 +to % 2 - % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disconnected % 1 +from % 2 - % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1( % 2 +) + +< translation +type = "unfinished" > % 1( % 2 +) + +< /message> +< message > + +Distort < /source> +< translation > Искажения < /translation> +< /message> +< message > + +Math < /source> +< translation > Математика < /translation> +< /message> +< message > + + Keying < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Color < /source> +< translation > Цвет < /translation> +< /message> +< message > + +Filter < /source> +< translation > Фильтр < /translation> +< /message> +< message > + + Timeline < /source> + < translation > Монтажный +стол < /translation> +< /message> +< message > + + Generator < /source> + < translation > Генератор < /translation> + < /message> + < message > + Channel < /source> + < translation +type = "vanished" > Канал < /translation> +< /message> +< message > + +Transition < /source> +< translation > Переход < /translation> +< /message> +< message > + +Project < /source> +< translation > Проект < /translation> +< /message> +< message > + + OpenFX < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Time < /source> + < translation +type = "unfinished" > Время < /translation> +< /message> +< message > + + Uncategorized < /source> + < translation > Без +категории < /translation> +< /message> +< /context> +< context > +olive::NodeGroup < /name> +< message > + + Group < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +group +of +nodes +that +is +represented as a +single +node. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::NodePanel < /name> +< message > + + Node +Editor < /source> +< translation > Редактор +нод < /translation> +< /message> +< /context> +< context > +olive::NodeParamView < /name> +< message > + + % 1 +Nodes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Other < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Deleted % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Paste +Nodes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +node +types +already +exist in this +context: -This driver is known to have stability and performance issues with Oak Video Editor. It is highly recommended you install the proprietary NVIDIA driver before continuing to use Oak Video Editor. - - - - - olive::ManagedDisplayWidget - - - Color Space - Цветовое пространство - - - - No color manager connected - - - - - Display - Дисплей - - - - View - Вид - - - - Look - Представление - - - - (None) - (нет) - - - - OpenColorIO Error - Ошибка OpenColorIO - - - - Failed to set color configuration: %1 - Не удалось установить конфигурацию управления цветом: %1 - - - - olive::ManagedPixelSamplerWidget - - - Display - Дисплей - - - - Reference - - - - - olive::MarkerPropertiesDialog - - - Time - Время - - - - In: - Вход: - - - - Out: - Выход: - - - - Color: - - - - - Name: - Название: - - - - (multiple) - (больше одного) - - - - Edit Markers - - - - - Invalid Values - - - - - In point must be less than or equal to out point. - - - - - Set Marker Properties - - - - - olive::MaskDistortNode - - - Texture - Текстура - - - - Invert - - - - - Feather - Растушевка - - - - Mask - - - - - Apply a polygonal mask. - - - - - olive::MathNode - - - Math - Математика - - - - Perform a mathematical operation between two values. - Выполнить математическую операцию с двумя значениями - - - - Method - Способ - - - - - Value - Значение - - - Add - Сложение - - - Subtract - Вычитание - - - Multiply - Умножение - - - Divide - Деление - - - Power - Степень - - - - olive::MathNodeBase - - - Add - - - - - Subtract - Вычитание - - - - Multiply - Умножение - - - - Divide - Деление - - - - Power - Степень - - - - olive::MatrixGenerator - - - Orthographic Matrix - Прямоугольная матрица - - - - Ortho - Орто - - - - Generate an orthographic matrix using position, rotation, and scale. - - - - - Position - Позиция - - - - Rotation - Вращение - - - - Scale - Масштаб - - - - Uniform Scale - Пропорции - - - - Anchor Point - Точка привязки - - - - olive::MenuShared - - - Ctrl+N - Ctrl+N - - - - Ctrl+Shift+N - Ctrl+Shift+N - - - - Ctrl+X - Ctrl+X - - - - Ctrl+C - Ctrl+C - - - - Ctrl+V - Ctrl+V - - - - Ctrl+Shift+V - Ctrl+Shift+V - - - - Ctrl+D - - - - - F2 - - - - - Del - Del - - - - Shift+Del - Shift+Del - - - - Ctrl+K - Ctrl+K - - - - Ctrl+R - Ctrl+R - - - - I - I - - - - O - O - - - - G - - - - - Ctrl+Shift+D - Ctrl+Shift+D - - - - Ctrl+L - Ctrl+L - - - - Shift+E - Shift+E - - - - &Project - &Проект - - - - &Sequence - П&оследовательность - - - - &Folder - П&апка - - - - Cu&t - В&ырезать - - - - Cop&y - С&копировать - - - - &Paste - &Вставить - - - - Paste Insert - - - - - Duplicate - Сделать копию - - - - Rename - - - - - Delete - Удалить - - - - Ripple Delete - Удалить со сдвигом - - - - Split - Разделить - - - - Speed/Duration - Скорость и длительность - - - - Set In Point - Установить точку входа - - - - Set Out Point - Установить точку выхода - - - - Reset In Point - Сбросить точку входа - - - - Reset Out Point - Сбросить точку выхода - - - - Clear In/Out Point - Очистить точки входа/выхода - - - - Add Default Transition - Добавить переход по умолчанию - - - - Link/Unlink - Связать/Убрать связь - - - - Enable/Disable - Включить/Отключить - - - - Nest - Вложить - - - - Frames - Кадры - - - - Drop Frame - С пропуском кадров - - - - Non-Drop Frame - Без пропуска кадров - - - - Milliseconds - Миллисекунды - - - - Seconds - Секунды - - - - olive::MergeNode - - - Merge - Объединение - - - - Merge two textures together. - Объединить две текстуры. - - - - Base - Основа - - - - Blend - Совмещение - - - - olive::MosaicFilterNode - - - Texture - Текстура - - - - Horizontal - По горизонтали - - - - Vertical - По вертикали - - - - Mosaic - Мозаика - - - - Apply a pixelated mosaic filter to video. - Применить эффект пикселизованной мозаики - - - - olive::MultiCamNode - - - Multi-Cam - - - - - Allows easy switching between multiple sources. - - - - - Current - - - - - Sources - - - - - Sequence - Последовательность - - - - Sequence Type - - - - - Video - Видео - - - - Audio - Звук - - - - %1: %2 - %1: %2 - - - - olive::MulticamPanel - - - Multi-Cam - - - - - olive::MulticamWidget - - - Switched Multi-Camera Source - - - - - olive::Node - - Input - Вход - - - - Output - Выход - - - General - Общие - - - - Enabled - Включено - - - - Connected %1 to %2 - %3 - - - - - Disconnected %1 from %2 - %3 - - - - - %1 (%2) - %1 (%2) - - - - Distort - Искажения - - - - Math - Математика - - - - Keying - - - - - Color - Цвет - - - - Filter - Фильтр - - - - Timeline - Монтажный стол - - - - Generator - Генератор - - - Channel - Канал - - - - Transition - Переход - - - - Project - Проект - - - - OpenFX - - - - - Time - Время - - - - Uncategorized - Без категории - - - - olive::NodeGroup - - - Group - - - - - A group of nodes that is represented as a single node. - - - - - olive::NodePanel - - - Node Editor - Редактор нод - - - - olive::NodeParamView - - - %1 Nodes - - - - - Other - - - - - Deleted %1 Node(s) - - - - - Paste Nodes - - - - - The following node types already exist in this context: + % +1 -%1 +Do +you +wish +to +paste +values +onto +the +existing +nodes +or +paste +new nodes ? + < translation type = "unfinished" > +< /message> +< message > + + Paste +As +Values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Paste +As +Nodes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::NodeParamViewArrayButton < /name> +< message > + ++ +< translation > + +< /message> +< message > + + - + < translation > - + < /message> + < /context> + < context > + olive::NodeParamViewArrayWidget < /name> + < message +numerus = "yes" > + + % n +element(s) < /source> +< translation > + % n +элемент < /numerusform> +< numerusform > % n +элемента < /numerusform> +< numerusform > % n +элементов < /numerusform> +< /translation> +< /message> +< /context> +< context > +olive::NodeParamViewConnectedLabel < /name> +< message > + + Connected +to < /source> +< translation > Соединено +с < /translation> +< /message> +< message > + +Nothing < /source> +< translation > ничем < /translation> +< /message> +< message > + +Disconnect < /source> +< translation > Отсоединить < /translation> +< /message> +< /context> +< context > +olive::NodeParamViewContext < /name> +< message > + + Added % 1 +to +Node +Chain < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::NodeParamViewItem < /name> + < message > + % 1( % 2 +) + +< translation +type = "vanished" > % 1( % 2 +) + +< /message> +< message > + + Clear < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::NodeParamViewItemBase < /name> +< message > + + % 1( % 2 +) + +< translation +type = "unfinished" > % 1( % 2 +) + +< /message> +< /context> +< context > +olive::NodeParamViewItemBody < /name> +< message > + +... + +< translation +type = "vanished" > +... + +< /message> +< message > + + + % 1 +: + +< translation > % 1 +: + +< /message> +< message > + + Appended +Array +Element +In % 1 - % 2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Inserted +Array +Element +In % 1 - % 2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Removed +Array +Element +In % 1 - % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::NodeParamViewKeyframeControl < /name> +< message > + + Toggled +Keyframe < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enabled +Keyframing +On % 1 - % 2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Warning < /source> +< translation > Предупреждение < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +disable +keyframing +on +this +value ? This will +clear +all +existing +keyframes. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disabled +Keyframing +On % 1 - % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::NodeParamViewTextEdit < /name> +< message > + + Edit +In +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::NodeParamViewWidgetBridge < /name> +< message > + + Edited +Value +Of % 1 - % 2 < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::NodePropertiesDialog < /name> + < message > + Node +Properties < /source> +< translation +type = "vanished" > Свойства +узла < /translation> +< /message> +< message > +Name +: + +< translation +type = "vanished" > Название +: + +< /message> +< /context> +< context > +olive::NodeTablePanel < /name> +< message > + + Table +View < /source> +< translation > Просмотр +таблицей < /translation> +< /message> +< /context> +< context > +olive::NodeTableView < /name> +< message > + +Type < /source> +< translation > Тип < /translation> +< /message> +< message > + +Source < /source> +< translation > Источник < /translation> +< /message> +< message > + +R / X < /source> +< translation > R / X < /translation> +< /message> +< message > + +G / Y < /source> +< translation > G / Y < /translation> +< /message> +< message > + +B / Z < /source> +< translation > B / Z < /translation> +< /message> +< message > + +A / W < /source> +< translation > A / W < /translation> +< /message> +< message > + +(unknown) < /source> +< translation > (неизвестно) < /translation> +< /message> +< /context> +< context > +olive::NodeTreeView < /name> +< message > + +Nodes < /source> +< translation > Ноды < /translation> +< /message> +< message > + +X < /source> +< translation > X < /translation> +< /message> +< message > + + R < /source> + < translation +type = "unfinished" > R < /translation> +< /message> +< message > + +Y < /source> +< translation > Y < /translation> +< /message> +< message > + + G < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Z < /source> +< translation > Z < /translation> +< /message> +< message > + + B < /source> + < translation +type = "unfinished" > B < /translation> +< /message> +< message > + +W < /source> +< translation > W < /translation> +< /message> +< message > + + A < /source> + < translation +type = "unfinished" > A < /translation> +< /message> +< /context> +< context > +olive::NodeValueTree < /name> +< message > + + Type < /source> + < translation +type = "unfinished" > Тип < /translation> +< /message> +< message > + + Value < /source> + < translation +type = "unfinished" > Значение < /translation> +< /message> +< message > + + Source < /source> + < translation +type = "unfinished" > Источник < /translation> + < /message> + < /context> + < context > + olive::NodeView < /name> + < message > + Label < /source> + < translation +type = "vanished" > Метка < /translation> +< /message> +< message > + + Open in Viewer < /source> + < translation > Открыть +в +мониторе < /translation> +< /message> +< message > + + Smooth +Edges < /source> +< translation > Плавные +края < /translation> +< /message> +< message > +Filter < /source> +< translation +type = "vanished" > Фильтр < /translation> + < /message> + < message > + Show +All +Nodes < /source> +< translation +type = "vanished" > Показывать +все +ноды < /translation> +< /message> +< message > +Show +Selected < /source> +< translation +type = "vanished" > Показывать +выбранное < /translation> +< /message> +< message > + + Deleted % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Color +of % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Moved % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nodes +must +be +placed +inside +a +context. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Dropped % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ungroup < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Group < /source> + < translation +type = "unfinished" > +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > С & войства < /translation> +< /message> +< message > + +Direction < /source> +< translation > Направление < /translation> +< /message> +< message > + + Top +to +Bottom < /source> +< translation > Сверху +вниз < /translation> +< /message> +< message > + + Bottom +to +Top < /source> +< translation > Снизу +вверх < /translation> +< /message> +< message > + + Left +to +Right < /source> +< translation > Слева +направо < /translation> +< /message> +< message > + + Right +to +Left < /source> +< translation > Справа +налево < /translation> +< /message> +< message > + +Add < /source> +< translation > Добавить < /translation> +< /message> +< message > + + Failed +to +group +nodes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nodes +can +only +be +grouped +if they & apos; +re in the +same +context. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Grouped +Nodes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ungrouped +Nodes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input & quot; +% +1 & quot; +is +currently +connected +to +node & quot; +% +2 & quot; +, +which +is +not +visible in this +context.By +connecting +this, that +connection +will +be +removed.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::NodeViewToolBar < /name> +< message > + + Add +Node < /source> +< translation > Добавить < /translation> +< /message> +< message > + + Toggle +Mini - Map < /source> +< translation > Включить +или +выключить +миникарту < /translation> +< /message> +< /context> +< context > +olive::NoiseGeneratorNode < /name> +< message > + + Noise < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Generates +noise +patterns < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Base < /source> + < translation +type = "unfinished" > Основа < /translation> +< /message> +< message > + + Strength < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Цвет < /translation> +< /message> +< /context> +< context > +olive::OCIOGradingTransformLinearNode < /name> +< message > + + OCIO +Color +Grading(Linear) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Simple +linear +color +grading +using OpenColorIO +. + +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Вход < /translation> +< /message> +< message > + + Contrast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Offset < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Exposure < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Exposure +increments in stops. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saturation < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pivot < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Enable +Black +Clamp < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Black +Clamp < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enable +White +Clamp < /source> +< translation +type = "unfinished" > +< /message> +< message > + + White +Clamp < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::OCIOLutNode < /name> +< message > + + LUT +Files( * +. +cube * .3 +dl +) +; +;Cube +LUT( * +. +cube +) +; +;3 +DL +LUT( * .3 +dl +) +; +;All +Files( * +) + +< translation +type = "unfinished" > +< /message> +< message > + + Select +a.cube +or +.3 +dl +LUT +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OCIO +LUT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Applies +a +LUT +file +through +OpenColorIO. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > Вход < /translation> +< /message> +< message > + + LUT +File < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > Направление < /translation> +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::OTIOPropertiesDialog < /name> +< message > + + OpenTimelineIO +files +do not store +sequence +parameters(resolution, frame +rate, etc. +) -Do you wish to paste values onto the existing nodes or paste new nodes? - - - - - Paste As Values - - - - - Paste As Nodes - - - - - Pasted %1 Node(s) - - - - - olive::NodeParamViewArrayButton - - - + - + - - - - - - - - - - - olive::NodeParamViewArrayWidget - - - %n element(s) - - %n элемент - %n элемента - %n элементов - - - - - olive::NodeParamViewConnectedLabel - - - Connected to - Соединено с - - - - Nothing - ничем - - - - Disconnect - Отсоединить - - - - olive::NodeParamViewContext - - - Added %1 to Node Chain - - - - - olive::NodeParamViewItem - - %1 (%2) - %1 (%2) - - - - Clear - - - - - olive::NodeParamViewItemBase - - - %1 (%2) - %1 (%2) - - - - olive::NodeParamViewItemBody - - ... - ... - - - - - %1: - %1: - - - - Appended Array Element In %1 - %2 - - - - - Inserted Array Element In %1 - %2 - - - - - Removed Array Element In %1 - %2 - - - - - olive::NodeParamViewKeyframeControl - - - Toggled Keyframe - - - - - Enabled Keyframing On %1 - %2 - - - - - Warning - Предупреждение - - - - Are you sure you want to disable keyframing on this value? This will clear all existing keyframes. - - - - - Disabled Keyframing On %1 - %2 - - - - - olive::NodeParamViewTextEdit - - - Edit In Viewer - - - - - olive::NodeParamViewWidgetBridge - - - Edited Value Of %1 - %2 - - - - - olive::NodePropertiesDialog - - Node Properties - Свойства узла - - - Name: - Название: - - - - olive::NodeTablePanel - - - Table View - Просмотр таблицей - - - - olive::NodeTableView - - - Type - Тип - - - - Source - Источник - - - - R/X - R/X - - - - G/Y - G/Y - - - - B/Z - B/Z - - - - A/W - A/W - - - - (unknown) - (неизвестно) - - - - olive::NodeTreeView - - - Nodes - Ноды - - - - X - X - - - - R - R - - - - Y - Y - - - - G - - - - - Z - Z - - - - B - B - - - - W - W - - - - A - A - - - - olive::NodeValueTree - - - Type - Тип - - - - Value - Значение - - - - Source - Источник - - - - olive::NodeView - - Label - Метка - - - - Open in Viewer - Открыть в мониторе - - - - Smooth Edges - Плавные края - - - Filter - Фильтр - - - Show All Nodes - Показывать все ноды - - - Show Selected - Показывать выбранное - - - - Deleted %1 Node(s) - - - - - Set Color of %1 Node(s) - - - - - - Moved %1 Node(s) - - - - - Nodes must be placed inside a context. - - - - - Dropped %1 Node(s) - - - - - Ungroup - - - - - Group - - - - - P&roperties - С&войства - - - - Direction - Направление - - - - Top to Bottom - Сверху вниз - - - - Bottom to Top - Снизу вверх - - - - Left to Right - Слева направо - - - - Right to Left - Справа налево - - - - Add - Добавить - - - - Failed to group nodes - - - - - Nodes can only be grouped if they're in the same context. - - - - - Grouped Nodes - - - - - Ungrouped Nodes - - - - - Input "%1" is currently connected to node "%2", which is not visible in this context. By connecting this, that connection will be removed. Do you wish to continue? - - - - - olive::NodeViewToolBar - - - Add Node - Добавить - - - - Toggle Mini-Map - Включить или выключить миникарту - - - - olive::NoiseGeneratorNode - - - Noise - - - - - Generates noise patterns - - - - - Base - Основа - - - - Strength - - - - - Color - Цвет - - - - olive::OCIOGradingTransformLinearNode - - - OCIO Color Grading (Linear) - - - - - Simple linear color grading using OpenColorIO. - - - - - Input - Вход - - - - Contrast - - - - - Offset - - - - - Exposure - - - - - Exposure increments in stops. - - - - - Saturation - - - - - Pivot - - - - - Enable Black Clamp - - - - - Black Clamp - - - - - Enable White Clamp - - - - - White Clamp - - - - - olive::OCIOLutNode - - - LUT Files (*.cube *.3dl);;Cube LUT (*.cube);;3DL LUT (*.3dl);;All Files (*) - - - - - Select a .cube or .3dl LUT file - - - - - OCIO LUT - - - - - Applies a LUT file through OpenColorIO. - - - - - Input - Вход - - - - LUT File - - - - - Direction - Направление - - - - Forward - - - - - Inverse - - - - - olive::OTIOPropertiesDialog - - - OpenTimelineIO files do not store sequence parameters (resolution, frame rate, etc.) +Please +set +the +correct +parameters +on +the +sequences +below(they +have +been +set +to +your +default +sequence +parameters as a +starting +point +). + +< translation +type = "unfinished" > +< /message> +< message > + + Sequence < /source> + < translation +type = "unfinished" > Последовательность < /translation> +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > Действия < /translation> +< /message> +< message > + + Settings < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load +OpenTimelineIO +Project < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::OpacityEffect < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > Текстура < /translation> +< /message> +< message > + + + Opacity < /source> + < translation +type = "unfinished" > Непрозрачность < /translation> +< /message> +< message > + + Alter +a +video & apos; +s +opacity.This +is +equivalent +to +multiplying +a +video +by +a +number +between +0.0 +and +1.0. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::PanNode < /name> +< message > + + +Pan < /source> +< translation > Панорама < /translation> +< /message> +< message > + + Adjust +the +stereo +panning +of +an +audio +source. < /source> +< translation > Поменять +стереопанорамирование +источника +звука < /translation> +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > Сэмплы < /translation> +< /message> +< /context> +< context > +olive::PanelWidget < /name> +< message > + + % 1 +: % +2 < /source> +< translation > % 1 +: % +2 < /translation> +< /message> +< /context> +< context > +olive::ParamPanel < /name> +< message > + + Parameter +Editor < /source> +< translation > Редактор +параметров < /translation> +< /message> +< message > +(none) < /source> +< translation +type = "vanished" > (нет) < /translation> + < /message> + < message > + (multiple) < /source> + < translation +type = "vanished" > (больше +одного +) + +< /message> +< /context> +< context > +olive::PathWidget < /name> +< message > + +Browse < /source> +< translation > Просмотр < /translation> +< /message> +< message > + + Browse +for path < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::PixelAspectRatioComboBox < /name> +< message > + + Set +Custom +Pixel +Aspect +Ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::PixelSamplerPanel < /name> +< message > + + Pixel +Sampler < /source> +< translation > Пипетка < /translation> +< /message> +< /context> +< context > +olive::PixelSamplerWidget < /name> +< message > + +Color < /source> +< translation > Цвет < /translation> +< /message> +< message > + +<html><font color = +& +apos; +#FF8080 & apos; +> +R: % +1( % 5 +) +</font><br><font color='#80FF80'>G: %2 (%6)</ +font > <br><font color = +& +apos; +# +8080 +FF & apos; +> +B: % +3( % 7 +) +</font><br>A: %4 (%8)</ +html > +< translation +type = "unfinished" > +< /message> +< message > +<html><font color = +& +apos; +#FF8080 & apos; +> +R: % +1 < /font><br><font color='#80FF80'>G: %2</ +font > <br><font color = +& +apos; +# +8080 +FF & apos; +> +B: % +3 < /font><br>A: %4</ +html > +< translation +type = "vanished" > <html><font color = +& +apos; +#FF8080 & apos; +> +R: % +1 < /font><br><font color='#80FF80'>G: %2</ +font > <br><font color = +& +apos; +# +8080 +FF & apos; +> +B: % +3 < /font><br>A: %4</ +html > +< /message> +< /context> +< context > +olive::PolygonGenerator < /name> +< message > + +Polygon < /source> +< translation > Многоугольник < /translation> +< /message> +< message > + + Generate +a +2 +D +polygon +of +any +amount +of +points. < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Points < /source> +< translation > Точек < /translation> +< /message> +< message > + +Color < /source> +< translation > Цвет < /translation> +< /message> +< /context> +< context > +olive::PreCacheTask < /name> +< message > + + Pre - caching % 1 +:% +2 < /source> +< translation > Предкэширование % 1 +:% +2 < /translation> +< /message> +< /context> +< context > +olive::PreferencesAppearanceTab < /name> +< message > + +Theme < /source> +< translation > Тема < /translation> +< /message> +< message > + + Default +Node +Colors < /source> +< translation > Цвета +нод +по +умолчанию < /translation> +< /message> +< message > + + Miscellaneous < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::PreferencesAudioTab < /name> +< message > + + Backend +: + +< translation > Движок +: + +< /message> +< message > + +Output < /source> +< translation > Выход < /translation> +< /message> +< message > + + + Device +: + +< translation > Устройство +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > Частота +дискр. +: + +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > Схема +каналов: +< /message> +< message > + + Sample +Format: +< translation +type = "unfinished" > +< /message> +< message > + +Input < /source> +< translation > Вход < /translation> +< /message> +< message > + + Recording < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Формат +: + +< /message> +< message > +Recording +Mode: +< translation +type = "vanished" > Режим +записи: +< /message> +< message > +Mono < /source> +< translation +type = "vanished" > Моно < /translation> + < /message> + < message > + Stereo < /source> + < translation +type = "vanished" > Стерео < /translation> +< /message> +< message > + + Refresh +Devices < /source> +< translation > Обновить +список +устройств < /translation> +< /message> +< message > +Please +wait +... + +< translation +type = "vanished" > Подождите, пожалуйста… +< /message> +< message > +Default < /source> +< translation +type = "vanished" > По +умолчанию < /translation> +< /message> +< /context> +< context > +olive::PreferencesBehaviorTab < /name> +< message > + +Behavior < /source> +< translation > Поведение < /translation> +< /message> +< message > + + Setting < /source> + < translation +type = "unfinished" > +< /message> +< message > + +General < /source> +< translation > Общие < /translation> +< /message> +< message > + + Enable +hover +focus < /source> +< translation > Включить +фокус +наводкой < /translation> +< /message> +< message > + + Panels +will +be +considered +focused +when +the +mouse +cursor +is +over +them +without +having +to +click +them. < /source> +< translation > Панели +будут +считаться +в +фокусе, когда +над +ними +находится +указатель +мыши(кликать +не +надо +). + +< /message> +< message > + + Enable +slider +ladder < /source> +< translation > Включить +лестницу +в +ползунках < /translation> +< /message> +< message > + + Scrolling +zooms +by +default + +< translation +type = "unfinished" > +< /message> +< message > + + By +default, +scrolling +will +move +the +view +around, and +holding +Ctrl / Cmd +will +make +it +zoom +instead.Enabling +this +will +switch those, scrolling + will + zoom + by + default, + and + holding + Ctrl / Cmd + will + move + the + view + instead. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Audio < /source> + < translation > Звук < /translation> + < /message> + < message > + + Enable + audio + scrubbing < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Timeline < /source> + < translation > Монтажный + стол < /translation> + < /message> + < message > + + Auto - Seek + to + Imported + Clips < /source> + < translation > Автоперемотка + к + импортированным + клипам < /translation> + < /message> + < message > + + Edit + Tool + Also + Seeks < /source> + < translation > Выделение + с + перемоткой < /translation> + < /message> + < message > + + Edit + Tool + Selects + Links < /source> + < translation > Выделение + с + выбором + связей < /translation> + < /message> + < message > + + Enable + Drag + Files + to + Timeline < /source> + < translation > Разрешить + перетаскивание + на + монтажный + стол + извне < /translation> + < /message> + < message > + + Invert + Timeline + Scroll + Axes < /source> + < translation > Инвертировать + оси + прокрутки + монтажного + стола < /translation> + < /message> + < message > + + Hold + ALT + on + any + UI + element + to + switch scrolling + axes + + < translation + type = "unfinished" > + < /message> + < message > + + Seek + Also + Selects < /source> + < translation > Перемотка + с + выделением < /translation> + < /message> + < message > + + Seek + to + the + End + of + Pastes < /source> + < translation > Перемотка + до + конца + вставок < /translation> + < /message> + < message > + + Selecting + Also + Seeks < /source> + < translation > Выделение + с + перемоткой < /translation> + < /message> + < message > + + Playback < /source> + < translation > Воспроизведение < /translation> + < /message> + < message > + + Ask + For + Name + When + Setting + Marker < /source> + < translation > Спрашивать + имя + маркера + при + добавлении < /translation> + < /message> + < message > + + Automatically + rewind + at + the + end + of + a + sequence < /source> + < translation > Автоматически + перематывать + назад + в + конце + последовательности < /translation> + < /message> + < message > + + Project < /source> + < translation > Проект < /translation> + < /message> + < message > + + Drop + Files + on + Media + to + Replace < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Nodes < /source> + < translation > Ноды < /translation> + < /message> + < message > + + Add + Default + Effects + to + New + Clips < /source> + < translation > Добавлять + эффекты + по + умолчанию + в + новые + клипы < /translation> + < /message> + < message > + + Auto - Scale + By + Default < /source> + < translation > Автоматически + масштабировать + по + умолчанию < /translation> + < /message> + < message > + + Splitting + Clips + Copies + Dependencies < /source> + < translation > Разделение + клипов + копирует + зависимости < /translation> + < /message> + < message > + + Multiple + clips + can + share + the + same + nodes.Disable + this + to + automatically + share + node + dependencies + among + clips + when + copying + or + splitting + them. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Rendering < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Graphics + Backend < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Selects + the + graphics + API + Oak + should + request + on + next + launch.Vulkan + is + experimental: on + most + systems + it + will + fall + back + to + OpenGL + or + use + a + prototype + Vulkan + path + that + is + not + yet + fully + validated. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + + OpenGL < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Vulkan(experimental) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Use + glFinish < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::PreferencesDialog < /name> + < message > + + Preferences < /source> + < translation > Параметры < /translation> + < /message> + < message > + + General < /source> + < translation > Общие < /translation> + < /message> + < message > + + Appearance < /source> + < translation > Внешний + вид < /translation> + < /message> + < message > + + Behavior < /source> + < translation > Поведение < /translation> + < /message> + < message > + + Disk < /source> + < translation > Диск < /translation> + < /message> + < message > + + Audio < /source> + < translation > Звук < /translation> + < /message> + < message > + + Keyboard < /source> + < translation > Клавиатурные + комбинации < /translation> + < /message> + < /context> + < context > + olive::PreferencesDiskTab < /name> + < message > + + Disk + Management < /source> + < translation > Управление + диском < /translation> + < /message> + < message > + + Disk + Cache + Location: + < translation > Размещение + кэша + на + диске: + < /message> + < message > + + Disk + Cache + Settings < /source> + < translation > Параметры + кэша + на + диске < /translation> + < /message> + < message > + + Cache + Behavior < /source> + < translation > Поведение + кэша < /translation> + < /message> + < message > + + Cache + Ahead: + < translation > Кэширование + впереди: + < /message> + < message > + + + % 1 + seconds < /source> + < translation > % 1 + секунд < /translation> + < /message> + < message > + + Cache + Behind: + < translation > Кэширование + позади: + < /message> + < message > + + Proxy + Settings < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Proxy + Width: + < translation + type = "unfinished" > + < /message> + < message > + + Proxy + Height: + < translation + type = "unfinished" > + < /message> + < message > + + Proxy + CRF: + < translation + type = "unfinished" > + < /message> + < message > + + Proxy + Preset: + < translation + type = "unfinished" > + < /message> + < message > + + Disk + Cache < /source> + < translation > Дисковый + кэш < /translation> + < /message> + < message > + + Failed + to + set + disk + cache + location.Access + was + denied. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::PreferencesGeneralTab < /name> + < message > + + Locale < /source> + < translation > Локализация < /translation> + < /message> + < message > + + Language + : + + < translation > Язык + интерфейса: + < /message> + < message > + + Timeline < /source> + < translation > Монтажный + стол < /translation> + < /message> + < message > + + Auto - Scroll + Method: + < translation > Способ + автопрокрутки: + < /message> + < message > + + None < /source> + < translation > Нет < /translation> + < /message> + < message > + + Page + Scrolling < /source> + < translation > Целыми + страницами < /translation> + < /message> + < message > + + Smooth + Scrolling < /source> + < translation > Плавной + прокруткой < /translation> + < /message> + < message > + + Rectified + Waveforms: + < translation > Выпрямленная + волновая + форма: + < /message> + < message > + + Default + Still + Image + Length: + < translation > Длина + клипа + изображения + по + умолчанию: + < /message> + < message > + + % 1 + seconds < /source> + < translation > % 1 + секунд < /translation> + < /message> + < message > + + Auto - Recovery < /source> + < translation > Автовосстановление < /translation> + < /message> + < message > + + Enable + Auto - Recovery + : + + < translation > Включить + автовосстановление: + < /message> + < message > + + Auto - Recovery + Interval: + < translation > Интервал + сохранения: + < /message> + < message > + + Maximum + Versions + Per + Project: + < translation > Максимум + версий + на + проект: + < /message> + < message > + + Browse + Auto - Recoveries < /source> + < translation > Просмотреть + автовосстановленные + проекты < /translation> + < /message> + < message > + + % 1( % 2 + ) + + < translation > % 1( % 2 + ) + + < /message> + < /context> + < context > + olive::PreferencesKeyboardTab < /name> + < message > + + Search + for action or + shortcut < /source> + < translation > Искать + действие + или + комбинацию + клавиш < /translation> + < /message> + < message > + + Action < /source> + < translation > Действие < /translation> + < /message> + < message > + + Shortcut < /source> + < translation > Комбинация < /translation> + < /message> + < message > + + Import < /source> + < translation > Импортировать < /translation> + < /message> + < message > + + Export < /source> + < translation > Экспортировать < /translation> + < /message> + < message > + + Reset + Selected < /source> + < translation > Сбросить + выбранное < /translation> + < /message> + < message > + + Reset + All < /source> + < translation > Сбросить + все < /translation> + < /message> + < message > + + Confirm + Reset + All + Shortcuts < /source> + < translation > Подтвердите + действие < /translation> + < /message> + < message > + + Are + you + sure + you + wish + to + reset + all + keyboard + shortcuts + to + their + defaults ? + < translation > Вы действительно + хотите + сбросить + все + клавиатурные + комбинации + к + исходным + значениям ? + < /message> + < message > + + Import + Keyboard + Shortcuts < /source> + < translation > Импортировать + клавиатурные + комбинации < /translation> + < /message> + < message > + + + Error + saving + shortcuts < /source> + < translation > Ошибка + при + сохранении + клавиатурных + комбинаций < /translation> + < /message> + < message > + + Failed + to + open + file + for reading < /source> + < translation > Не удалось + открыть + файл + для + чтения < /translation> + < /message> + < message > + + Export + Keyboard + Shortcuts < /source> + < translation > Экспортировать + клавиатурные + комбинации < /translation> + < /message> + < message > + + Export + Shortcuts < /source> + < translation > Экспортировать + клавиатурные + комбинации < /translation> + < /message> + < message > + + Shortcuts + exported + successfully < /source> + < translation > Комбинации + успешно + экспортированы < /translation> + < /message> + < message > + + Failed + to + open + file + for writing < /source> + < translation > Не удалось + открыть + файл + для + записи < /translation> + < /message> + < /context> + < context > + olive::ProgressDialog < /name> + < message > + + Cancel < /source> + < translation > Отмена < /translation> + < /message> + < /context> + < context > + olive::Project < /name> + < message > + + Root < /source> + < translation + type = "unfinished" > + < /message> + < message > + + + (untitled) < /source> + < translation > (без + названия + ) + + < /message> + < /context> + < context > + olive::ProjectExplorer < /name> + < message > + + & New < /source> + < translation > & Создать < /translation> + < /message> + < message > + + & Import + ... + + < translation > & Импортировать… + < /message> + < message > + + Confirm + Item + Deletion < /source> + < translation > Подтвердите + удаление + объекта < /translation> + < /message> + < message > + + The + item & quot; + % + 1 & quot; + is + currently + connected + to + the + following + nodes: -Please set the correct parameters on the sequences below (they have been set to your default sequence parameters as a starting point). - - - - - Sequence - Последовательность - - - - Actions - Действия - - - - Settings - - - - - Load OpenTimelineIO Project - - - - - olive::OpacityEffect - - - Texture - Текстура - - - - - Opacity - Непрозрачность - - - - Alter a video's opacity. + % + 2 -This is equivalent to multiplying a video by a number between 0.0 and 1.0. - - - - - olive::PanNode - - - - Pan - Панорама - - - - Adjust the stereo panning of an audio source. - Поменять стереопанорамирование источника звука - - - - Samples - Сэмплы - - - - olive::PanelWidget - - - %1: %2 - %1: %2 - - - - olive::ParamPanel - - - Parameter Editor - Редактор параметров - - - (none) - (нет) - - - (multiple) - (больше одного) - - - - olive::PathWidget - - - Browse - Просмотр - - - - Browse for path - - - - - olive::PixelAspectRatioComboBox - - - Set Custom Pixel Aspect Ratio - - - - - Custom... - - - - - Custom (%1) - - - - - olive::PixelSamplerPanel - - - Pixel Sampler - Пипетка - - - - olive::PixelSamplerWidget - - - Color - Цвет - - - - <html><font color='#FF8080'>R: %1 (%5)</font><br><font color='#80FF80'>G: %2 (%6)</font><br><font color='#8080FF'>B: %3 (%7)</font><br>A: %4 (%8)</html> - - - - <html><font color='#FF8080'>R: %1</font><br><font color='#80FF80'>G: %2</font><br><font color='#8080FF'>B: %3</font><br>A: %4</html> - <html><font color='#FF8080'>R: %1</font><br><font color='#80FF80'>G: %2</font><br><font color='#8080FF'>B: %3</font><br>A: %4</html> - - - - olive::PolygonGenerator - - - Polygon - Многоугольник - - - - Generate a 2D polygon of any amount of points. - - - - - Points - Точек - - - - Color - Цвет - - - - olive::PreCacheTask - - - Pre-caching %1:%2 - Предкэширование %1:%2 - - - - olive::PreferencesAppearanceTab - - - Theme - Тема - - - - Default Node Colors - Цвета нод по умолчанию - - - - Miscellaneous - - - - - olive::PreferencesAudioTab - - - Backend: - Движок: - - - - Output - Выход - - - - - Device: - Устройство: - - - - Advanced - - - - - Sample Rate: - Частота дискр.: - - - - Channel Layout: - Схема каналов: - - - - Sample Format: - - - - - Input - Вход - - - - Recording - - - - - Format: - Формат: - - - Recording Mode: - Режим записи: - - - Mono - Моно - - - Stereo - Стерео - - - - Refresh Devices - Обновить список устройств - - - Please wait... - Подождите, пожалуйста… - - - Default - По умолчанию - - - - olive::PreferencesBehaviorTab - - - Behavior - Поведение - - - - Setting - - - - - General - Общие - - - - Enable hover focus - Включить фокус наводкой - - - - Panels will be considered focused when the mouse cursor is over them without having to click them. - Панели будут считаться в фокусе, когда над ними находится указатель мыши (кликать не надо). - - - - Enable slider ladder - Включить лестницу в ползунках - - - - Scrolling zooms by default - - - - - By default, scrolling will move the view around, and holding Ctrl/Cmd will make it zoom instead. Enabling this will switch those, scrolling will zoom by default, and holding Ctrl/Cmd will move the view instead. - - - - - Audio - Звук - - - - Enable audio scrubbing - - - - - Timeline - Монтажный стол - - - - Auto-Seek to Imported Clips - Автоперемотка к импортированным клипам - - - - Edit Tool Also Seeks - Выделение с перемоткой - - - - Edit Tool Selects Links - Выделение с выбором связей - - - - Enable Drag Files to Timeline - Разрешить перетаскивание на монтажный стол извне - - - - Invert Timeline Scroll Axes - Инвертировать оси прокрутки монтажного стола - - - - Hold ALT on any UI element to switch scrolling axes - - - - - Seek Also Selects - Перемотка с выделением - - - - Seek to the End of Pastes - Перемотка до конца вставок - - - - Selecting Also Seeks - Выделение с перемоткой - - - - Playback - Воспроизведение - - - - Ask For Name When Setting Marker - Спрашивать имя маркера при добавлении - - - - Automatically rewind at the end of a sequence - Автоматически перематывать назад в конце последовательности - - - - Project - Проект - - - - Drop Files on Media to Replace - - - - - Nodes - Ноды - - - - Add Default Effects to New Clips - Добавлять эффекты по умолчанию в новые клипы - - - - Auto-Scale By Default - Автоматически масштабировать по умолчанию - - - - Splitting Clips Copies Dependencies - Разделение клипов копирует зависимости - - - - Multiple clips can share the same nodes. Disable this to automatically share node dependencies among clips when copying or splitting them. - - - - - Rendering - - - - - Graphics Backend - - - - - Selects the graphics API Oak should request on next launch. Vulkan is experimental: on most systems it will fall back to OpenGL or use a prototype Vulkan path that is not yet fully validated. - - - - - - OpenGL - - - - - Vulkan (experimental) - - - - - Use glFinish - - - - - olive::PreferencesDialog - - - Preferences - Параметры - - - - General - Общие - - - - Appearance - Внешний вид - - - - Behavior - Поведение - - - - Disk - Диск - - - - Audio - Звук - - - - Keyboard - Клавиатурные комбинации - - - - olive::PreferencesDiskTab - - - Disk Management - Управление диском - - - - Disk Cache Location: - Размещение кэша на диске: - - - - Disk Cache Settings - Параметры кэша на диске - - - - Cache Behavior - Поведение кэша - - - - Cache Ahead: - Кэширование впереди: - - - - - %1 seconds - %1 секунд - - - - Cache Behind: - Кэширование позади: - - - - Proxy Settings - - - - - Proxy Width: - - - - - Proxy Height: - - - - - Proxy CRF: - - - - - Proxy Preset: - - - - - Disk Cache - Дисковый кэш - - - - Failed to set disk cache location. Access was denied. - - - - - olive::PreferencesGeneralTab - - - Locale - Локализация - - - - Language: - Язык интерфейса: - - - - Timeline - Монтажный стол - - - - Auto-Scroll Method: - Способ автопрокрутки: - - - - None - Нет - - - - Page Scrolling - Целыми страницами - - - - Smooth Scrolling - Плавной прокруткой - - - - Rectified Waveforms: - Выпрямленная волновая форма: - - - - Default Still Image Length: - Длина клипа изображения по умолчанию: - - - - %1 seconds - %1 секунд - - - - Auto-Recovery - Автовосстановление - - - - Enable Auto-Recovery: - Включить автовосстановление: - - - - Auto-Recovery Interval: - Интервал сохранения: - - - - Maximum Versions Per Project: - Максимум версий на проект: - - - - Browse Auto-Recoveries - Просмотреть автовосстановленные проекты - - - - %1 (%2) - %1 (%2) - - - - olive::PreferencesKeyboardTab - - - Search for action or shortcut - Искать действие или комбинацию клавиш - - - - Action - Действие - - - - Shortcut - Комбинация - - - - Import - Импортировать - - - - Export - Экспортировать - - - - Reset Selected - Сбросить выбранное - - - - Reset All - Сбросить все - - - - Confirm Reset All Shortcuts - Подтвердите действие - - - - Are you sure you wish to reset all keyboard shortcuts to their defaults? - Вы действительно хотите сбросить все клавиатурные комбинации к исходным значениям? - - - - Import Keyboard Shortcuts - Импортировать клавиатурные комбинации - - - - - Error saving shortcuts - Ошибка при сохранении клавиатурных комбинаций - - - - Failed to open file for reading - Не удалось открыть файл для чтения - - - - Export Keyboard Shortcuts - Экспортировать клавиатурные комбинации - - - - Export Shortcuts - Экспортировать клавиатурные комбинации - - - - Shortcuts exported successfully - Комбинации успешно экспортированы - - - - Failed to open file for writing - Не удалось открыть файл для записи - - - - olive::ProgressDialog - - - Cancel - Отмена - - - - olive::Project - - - Root - - - - - - (untitled) - (без названия) - - - - olive::ProjectExplorer - - - &New - &Создать - - - - &Import... - &Импортировать… - - - - Confirm Item Deletion - Подтвердите удаление объекта - - - - The item "%1" is currently connected to the following nodes: + Are + you + sure + you + wish + to + delete this + footage ? + < translation type = "unfinished" > + < /message> + < message > + + % 1( % 2 + ) + + < translation > % 1( % 2 + ) + + < /message> + < message > + + Open in New + Tab < /source> + < translation > Открыть + в + новой + вкладке < /translation> + < /message> + < message > + + Open in New + Window < /source> + < translation > Открыть + в + новом + окне < /translation> + < /message> + < message > + + Reveal in Explorer < /source> + < translation > Открыть + в + Проводнике < /translation> + < /message> + < message > + + Reveal in Finder < /source> + < translation > Открыть + в + Finder < /translation> + < /message> + < message > + + Reveal in File + Manager < /source> + < translation > Открыть + в + файловом + менеджере < /translation> + < /message> + < message > + + + Replace + Footage < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Generate + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Use + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Reveal + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Delete + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + Pre - Cache < /source> + < translation + type = "vanished" > Предкэширование < /translation> + < /message> + < message > + For & quot; + % + 1 & quot; + + < translation + type = "vanished" > Для & quot; + % + 1 & quot; + + < /message> + < message > + + Rename < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Delete < /source> + < translation + type = "unfinished" > Удалить < /translation> + < /message> + < message > + + P & roperties < /source> + < translation > С & войства < /translation> + < /message> + < message > + + Unsupported + media < /source> + < translation + type = "unfinished" > + < /message> + < message > + + This + file + type is + not + allowed + by + the + current + media + type filter + . + + < translation + type = "unfinished" > + < /message> + < message > + + Replaced + Footage < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Deleted % 1 + Item(s) < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ProjectExplorerNavigation < /name> + < message > + + Go + to + parent + folder < /source> + < translation > Перейти + в + родительскую + папку < /translation> + < /message> + < /context> + < context > + olive::ProjectImportErrorDialog < /name> + < message > + + Import + Error < /source> + < translation > Ошибка + импорта < /translation> + < /message> + < message > + + The + following + files + failed + to + import. Oak + Video + Editor + likely + does + not + support + their + formats. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ProjectImportTask < /name> + < message + numerus = "yes" > + + Importing % n + file(s) < /source> + < translation > + Импортируется % n + файл < /numerusform> + < numerusform > Импортируются % n + файла < /numerusform> + < numerusform > Импортируется % n + файлов < /numerusform> + < /translation> + < /message> + < /context> + < context > + olive::ProjectLoadBaseTask < /name> + < message > + + Loading & apos; + % + 1 & apos; + + < translation > Загружается & apos; + % + 1 & apos; + + < /message> + < /context> + < context > + olive::ProjectLoadTask < /name> + < message > + + This + project + is + from + a + version + of + Oak + Video + Editor + that + is + no + longer + supported in this + version. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + This + project + is + from + a + newer + version + of + Oak + Video + Editor + and + cannot + be + opened in this + version. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + determine + project + version. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + read + file & quot; + % + 1 & quot; + for reading. < /source> + < translation type = "unfinished" > + < /message> + < message > + + Failed + to + read + XML + document.File + may + be + corrupt.Error + was: % + 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + find + any + data + to + parse. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Unknown + error. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ProjectPanel < /name> + < message > + + Folder < /source> + < translation > Папка < /translation> + < /message> + < message > + + Project < /source> + < translation > Проект < /translation> + < /message> + < message > + + (none) < /source> + < translation > (нет) < /translation> + < /message> + < /context> + < context > + olive::ProjectPropertiesDialog < /name> + < message > + + Project + Properties + for & + apos; + % + 1 & apos; + + < translation + type = "unfinished" > + < /message> + < message > + + OpenColorIO + Configuration: + < translation + type = "unfinished" > + < /message> + < message > + + ( + default) + + < translation + type = "unfinished" > (по + умолчанию + ) + + < /message> + < message > + + Default + Input + Color + Space: + < translation + type = "unfinished" > + < /message> + < message > + + Reference + Space: + < translation + type = "unfinished" > + < /message> + < message > + + Scene + Linear < /source> + < translation + type = "unfinished" > Линейная + сцена < /translation> + < /message> + < message > + + Compositing + Log < /source> + < translation + type = "unfinished" > Лог.композитинг < /translation> + < /message> + < message > + + Browse < /source> + < translation + type = "unfinished" > Просмотр < /translation> + < /message> + < message > + + Color + Management < /source> + < translation + type = "unfinished" > Управление + цветом < /translation> + < /message> + < message > + + Use + Default + Location < /source> + < translation + type = "unfinished" > Размещение + по + умолчанию < /translation> + < /message> + < message > + + Store + Alongside + Project < /source> + < translation + type = "unfinished" > Хранить + рядом + с + проектом < /translation> + < /message> + < message > + + Use + Custom + Location: + < translation + type = "unfinished" > + < /message> + < message > + + Disk + Cache + Settings < /source> + < translation + type = "unfinished" > Параметры + кэша + на + диске < /translation> + < /message> + < message > + + Disk + Cache < /source> + < translation + type = "unfinished" > Дисковый + кэш < /translation> + < /message> + < message > + + OpenColorIO + Config + Error < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + set + OpenColorIO + configuration: % + 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Invalid + path < /source> + < translation + type = "unfinished" > + < /message> + < message > + + The + custom + cache + path + is + invalid.Please + check + it + and + try + again. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Browse + for OpenColorIO configuration < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ProjectSaveTask < /name> + < message > + + Saving & apos; + % + 1 & apos; + + < translation > Сохраняется & apos; + % + 1 & apos; + + < /message> + < message > + + Failed + to + write + XML + data. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + open + file & quot; + % + 1 & quot; + for writing. < /source> + < translation type = "unfinished" > + < /message> + < message > + + Unknown + error. < /source> + < translation + type = "unfinished" > + < /message> + < message > + Failed + to + write + XML + data < /source> + < translation + type = "vanished" > Не + удалось + записать + данные + XML < /translation> + < /message> + < message > + + Failed + to + overwrite & quot; + % + 1 & quot; + . + Project + has + been + saved as " + % + 2 & quot; + instead. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ProjectSettingsNode < /name> + < message > + Disk + Cache + Location < /source> + < translation + type = "vanished" > Размещение + кеша < /translation> + < /message> + < message > + Disk + Cache + Path < /source> + < translation + type = "vanished" > Путь + к + кешу + на + диске < /translation> + < /message> + < message > + Use + Default + Location < /source> + < translation + type = "vanished" > Размещение + по + умолчанию < /translation> + < /message> + < message > + Store + Alongside + Project < /source> + < translation + type = "vanished" > Хранить + рядом + с + проектом < /translation> + < /message> + < message > + Use + Custom + Location < /source> + < translation + type = "vanished" > Заказное + размещение < /translation> + < /message> + < message > + ( + default) + + < translation + type = "vanished" > (по + умолчанию + ) + + < /message> + < message > + Project + Settings < /source> + < translation + type = "vanished" > Параметры + проекта < /translation> + < /message> + < /context> + < context > + olive::ProjectToolbar < /name> + < message > + + New + ... + + < translation > Создать… + < /message> + < message > + + Open + Project < /source> + < translation > Открыть + проект < /translation> + < /message> + < message > + + Save + Project < /source> + < translation > Сохранить + проект < /translation> + < /message> + < message > + + Tree + View < /source> + < translation > Древовидный + режим < /translation> + < /message> + < message > + + List + View < /source> + < translation > Просмотр + списка < /translation> + < /message> + < message > + + Icon + View < /source> + < translation > Просмотр + миниатюр < /translation> + < /message> + < message > + + Search + media, markers, etc. < /source> + < translation > Искать + файлы, маркеры + и + т.д. < /translation> + < /message> + < /context> + < context > + olive::ProjectViewModel < /name> + < message > + + Name < /source> + < translation > Название < /translation> + < /message> + < message > + + Duration < /source> + < translation > Длительность < /translation> + < /message> + < message > + + Rate < /source> + < translation > Частота < /translation> + < /message> + < message > + + Modified < /source> + < translation > Изменено < /translation> + < /message> + < message > + + Created < /source> + < translation > Создано < /translation> + < /message> + < message > + + Renamed + Item & quot; + % + 1 & quot; + to & quot; + % + 2 & quot; + + < translation + type = "unfinished" > + < /message> + < message > + + Move % 1 + Item(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + Move + Items < /source> + < translation + type = "vanished" > Переместить + объекты < /translation> + < /message> + < /context> + < context > + olive::ProxyTask < /name> + < message > + + Generating + Proxy % 1 + :% + 2 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + generate + proxy: ffmpeg + executable + was + not + found < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + create + proxy + output + directory < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + start + ffmpeg + for proxy generation < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Proxy + generation + was + cancelled < /source> + < translation + type = "unfinished" > + < /message> + < message > + + ffmpeg + failed + to + generate + proxy: % + 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + ffmpeg + finished + but + proxy + file + was + not + created < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::RationalSlider < /name> + < message > + + NaN < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Float < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Rational < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Time < /source> + < translation + type = "unfinished" > Время < /translation> + < /message> + < /context> + < context > + olive::RenderCancelDialog < /name> + < message > + + Waiting + for workers to + finish + ... + + < translation + type = "unfinished" > + < /message> + < message > + + Renderer < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::RippleDistortNode < /name> + < message > + + Ripple < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Distorts + an + image + with a ripple + effect. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Input < /source> + < translation + type = "unfinished" > Вход < /translation> + < /message> + < message > + + Frequency < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Intensity < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Evolution < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Position < /source> + < translation + type = "unfinished" > Позиция < /translation> + < /message> + < message > + + Stretch < /source> + < translation + type = "unfinished" > Растянуть < /translation> + < /message> + < /context> + < context > + olive::SaveOTIOTask < /name> + < message > + + Exporting + project + to + OpenTimelineIO < /source> + < translation > Экспорт + проекта + в + OpenTimelineIO < /translation> + < /message> + < message > + + Project + contains + no + sequences + to + export. + + < translation > В + проекте + нет + экспортируемых + последовательностей. < /translation> + < /message> + < message > + + Failed + to + serialize + sequence & quot; + % + 1 & quot; + + < translation > Не + удалось + сериализовать + последовательность & quot; + % + 1 & quot; + + < /message> + < /context> + < context > + olive::ScopePanel < /name> + < message > + + Waveform < /source> + < translation > Волновая + форма < /translation> + < /message> + < message > + + Vectorscope < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Histogram < /source> + < translation > Гистограмма < /translation> + < /message> + < message > + + Scopes < /source> + < translation + type = "unfinished" > Анализаторы < /translation> + < /message> + < message > + Scope < /source> + < translation + type = "vanished" > Анализатор < /translation> + < /message> + < /context> + < context > + olive::SeekableWidget < /name> + < message > + + Deleted % 1 + Marker(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Pasted % 1 + Marker(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Moved % 1 + Marker(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Changed + Color + of % 1 + Marker(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Properties < /source> + < translation + type = "unfinished" > Свойства < /translation> + < /message> + < message > + + Changed + Marker + Length < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Changed + Workarea + Length < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::Sequence < /name> + < message > + + Video + Tracks < /source> + < translation > Видеодорожки < /translation> + < /message> + < message > + + Audio + Tracks < /source> + < translation > Звуковые + дорожки < /translation> + < /message> + < message > + + Subtitle + Tracks < /source> + < translation > Дорожки + субтитров < /translation> + < /message> + < message > + + Sequence < /source> + < translation > Последовательность < /translation> + < /message> + < message > + + A + series + of + cuts + that + result in an + edited + video.Also + called + a + timeline. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::SequenceDialog < /name> + < message > + + Name + : + + < translation > Название + : + + < /message> + < message > + + Set + As + Default < /source> + < translation > Использовать + по + умолчанию < /translation> + < /message> + < message > + + New + Sequence < /source> + < translation > Новая + последовательность < /translation> + < /message> + < message > + + Editing & quot; + % + 1 & quot; + + < translation > Правка & quot; + % + 1 & quot; + + < /message> + < message > + + Error + editing + Sequence < /source> + < translation > Ошибка + при + редактировании + последовательности < /translation> + < /message> + < message > + + Please + enter + a + name + for this Sequence. < /source> + < translation > Введите + название + этой + последовательности < /translation> + < /message> + < message > + + Don & apos; + t + ask + me + again < /source> + < translation + type = "unfinished" > Больше + не + спрашивать < /translation> + < /message> + < message > + + Low + Quality + Preview < /source> + < translation + type = "unfinished" > + < /message> + < message > + + The + preview + resolution + has + been + set + to + a + non - float + format.This + may + cause + banding + and + clipping + artifacts in the + preview.Do + you + wish + to + continue + ? + < translation type = "unfinished" > + < /message> + < message > + + Set + Sequence + Parameters + For & quot; + % + 1 & quot; + + < translation + type = "unfinished" > + < /message> + < message > + + Confirm + Set + As + Default < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Are + you + sure + you + want + to + set + the + current + parameters as defaults ? + < translation type = "unfinished" > + < /message> + < /context> + < context > + olive::SequenceDialogParameterTab < /name> + < message > + + Video < /source> + < translation > Видео < /translation> + < /message> + < message > + + Width + : + + < translation + type = "unfinished" > Ширина + : + + < /message> + < message > + + Height + : + + < translation + type = "unfinished" > Высота + : + + < /message> + < message > + + Frame + Rate: + < translation + type = "unfinished" > Частота + кадров: + < /message> + < message > + + Pixel + Aspect + Ratio: + < translation + type = "unfinished" > + < /message> + < message > + + Interlacing + : + + < translation + type = "unfinished" > Чересстрочность + : + + < /message> + < message > + + Audio < /source> + < translation > Звук < /translation> + < /message> + < message > + + Sample + Rate: + < translation > Частота + дискр. + : + + < /message> + < message > + + Channels + : + + < translation > Каналов + : + + < /message> + < message > + + Preview < /source> + < translation > Предпросмотр < /translation> + < /message> + < message > + + Resolution + : + + < translation > Разрешение + : + + < /message> + < message > + + Quality + : + + < translation > Качество + : + + < /message> + < message > + Auto - Cache + : + + < translation + type = "vanished" > Автокэширование + : + + < /message> + < message > + + Save + Preset < /source> + < translation > Сохранить + профиль < /translation> + < /message> + < message > + + ( % 1 + x % 2 + ) + + < translation > ( % 1 + x % 2 + ) + + < /message> + < /context> + < context > + olive::SequenceDialogPresetTab < /name> + < message > + + Preset < /source> + < translation > Профиль < /translation> + < /message> + < message > + + My + Presets < /source> + < translation > Мои + профили < /translation> + < /message> + < message > + + 4 + K + UHD < /source> + < translation > 4 + K + UHD < /translation> + < /message> + < message > + + 1080 + p < /source> + < translation > 1080 + p < /translation> + < /message> + < message > + + 720 + p < /source> + < translation > 720 + p < /translation> + < /message> + < message > + + NTSC < /source> + < translation > NTSC < /translation> + < /message> + < message > + + PAL < /source> + < translation > PAL < /translation> + < /message> + < message > + + % 1 + 23.976 + FPS < /source> + < translation > % 1 + 23, 976 + к / с < /translation> + < /message> + < message > + + % 1 + 25 + FPS < /source> + < translation > % 1 + 25 + к / с < /translation> + < /message> + < message > + + % 1 + 29.97 + FPS < /source> + < translation > % 1 + 29, 97 + к / с < /translation> + < /message> + < message > + + % 1 + 50 + FPS < /source> + < translation > % 1 + 50 + к / с < /translation> + < /message> + < message > + + % 1 + 59.94 + FPS < /source> + < translation > % 1 + 59, 94 + к / с < /translation> + < /message> + < message > + + % 1 + Standard < /source> + < translation + type = "unfinished" > + < /message> + < message > + + % 1 + Widescreen < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Delete + Preset < /source> + < translation > Удалить + профиль < /translation> + < /message> + < /context> + < context > + olive::SequenceViewerPanel < /name> + < message > + + Sequence + Viewer < /source> + < translation > Монитор + последовательностей < /translation> + < /message> + < /context> + < context > + olive::ShapeNode < /name> + < message > + + Shape < /source> + < translation > Фигура < /translation> + < /message> + < message > + + Generate + a + 2 + D + primitive + shape. < /source> + < translation > Нарисовать + геометрический + примитив. < /translation> + < /message> + < message > + + Type < /source> + < translation > Тип < /translation> + < /message> + < message > + + Radius < /source> + < translation + type = "unfinished" > Радиус < /translation> + < /message> + < message > + + Rectangle < /source> + < translation > Прямоугольник < /translation> + < /message> + < message > + + Ellipse < /source> + < translation > Эллипс < /translation> + < /message> + < message > + + Rounded + Rectangle < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ShapeNodeBase < /name> + < message > + + Position < /source> + < translation > Позиция < /translation> + < /message> + < message > + + Size < /source> + < translation > Размер < /translation> + < /message> + < message > + + Color < /source> + < translation > Цвет < /translation> + < /message> + < /context> + < context > + olive::SliderBase < /name> + < message > + + --- + < translation > --- + < /message> + < message > + + Invalid + Value < /source> + < translation > Некорректное + значение < /translation> + < /message> + < message > + + The + entered + value + is + not + valid + for this field. < /source> + < translation + type = "unfinished" > + < /message> + < message + numerus = "yes" > + + % n + minute(s) < /source> + < translation > + % n + минута < /numerusform> + < numerusform > % n + минуты < /numerusform> + < numerusform > % n + минут < /numerusform> + < /translation> + < /message> + < /context> + < context > + olive::SolidGenerator < /name> + < message > + + Solid < /source> + < translation > Заливка < /translation> + < /message> + < message > + + Generate + a + solid + color. < /source> + < translation > Создать + сплошную + заливку. < /translation> + < /message> + < message > + + Color < /source> + < translation > Цвет < /translation> + < /message> + < /context> + < context > + olive::SpeedDurationDialog < /name> + < message > + + Clip + Properties < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Speed / Duration < /source> + < translation > Скорость + и + длительность < /translation> + < /message> + < message > + + Speed + : + + < translation > Скорость + : + + < /message> + < message > + + Duration + : + + < translation > Длительность + : + + < /message> + < message > + + Link + Speed + and + Duration < /source> + < translation > Связать + скорость + и + длительность < /translation> + < /message> + < message > + + Reverse < /source> + < translation + type = "unfinished" > Развернуть < /translation> + < /message> + < message > + + Maintain + Audio + Pitch < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Ripple + Trailing + Clips < /source> + < translation + type = "unfinished" > + < /message> + < message > + + + Loop < /source> + < translation + type = "unfinished" > Петля < /translation> + < /message> + < message > + + Loop + : + + < translation + type = "unfinished" > + < /message> + < message > + + None < /source> + < translation + type = "unfinished" > Нет < /translation> + < /message> + < message > + + Clamp < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Set % 1 + Clip + Properties < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Set + Clip & quot; + % + 1 & quot; + Properties < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::StringSlider < /name> + < message > + + (none) < /source> + < translation > (нет) < /translation> + < /message> + < /context> + < context > + olive::StrokeFilterNode < /name> + < message > + + Stroke < /source> + < translation > Обводка < /translation> + < /message> + < message > + + Creates + a + stroke + outline + around + an + image. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Input < /source> + < translation > Вход < /translation> + < /message> + < message > + + Color < /source> + < translation > Цвет < /translation> + < /message> + < message > + + Radius < /source> + < translation > Радиус < /translation> + < /message> + < message > + + Opacity < /source> + < translation > Непрозрачность < /translation> + < /message> + < message > + + Inner < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::SubtitleBlock < /name> + < message > + + Subtitle < /source> + < translation > Субтитры < /translation> + < /message> + < message > + + A + time - based + node + representing + a + single + subtitle + element + for a certain + period + of + time. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Text < /source> + < translation > Текст < /translation> + < /message> + < /context> + < context > + olive::SwirlDistortNode < /name> + < message > + + Swirl < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Distorts + an + image + along + a + sine + wave. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Input < /source> + < translation + type = "unfinished" > Вход < /translation> + < /message> + < message > + + Radius < /source> + < translation + type = "unfinished" > Радиус < /translation> + < /message> + < message > + + Angle < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Position < /source> + < translation + type = "unfinished" > Позиция < /translation> + < /message> + < /context> + < context > + olive::Task < /name> + < message > + + Task < /source> + < translation > Задача < /translation> + < /message> + < message > + + Unknown + error < /source> + < translation > Неизвестная + ошибка < /translation> + < /message> + < /context> + < context > + olive::TaskDialog < /name> + < message > + + Task + Failed < /source> + < translation > Не + удалось + выполнить + задачу < /translation> + < /message> + < /context> + < context > + olive::TaskManagerPanel < /name> + < message > + + Task + Manager < /source> + < translation > Управление + задачами < /translation> + < /message> + < /context> + < context > + olive::TaskViewItem < /name> + < message > + + Error + : % + 1 < /source> + < translation > Ошибка + : % + 1 < /translation> + < /message> + < /context> + < context > + olive::TextGenerator < /name> + < message > + Sample + Text < /source> + < translation + type = "vanished" > Образец + текста < /translation> + < /message> + < message > + Text < /source> + < translation + type = "vanished" > Текст < /translation> + < /message> + < message > + Generate + rich + text. < /source> + < translation + type = "vanished" > Создать + форматированный + текст. < /translation> + < /message> + < message > + Enable + HTML < /source> + < translation + type = "vanished" > Включить + HTML < /translation> + < /message> + < message > + Font < /source> + < translation + type = "vanished" > Шрифт < /translation> + < /message> + < message > + Font + Size < /source> + < translation + type = "vanished" > Кегль + шрифта < /translation> + < /message> + < message > + Color < /source> + < translation + type = "vanished" > Цвет < /translation> + < /message> + < message > + Vertical + Align < /source> + < translation + type = "vanished" > Верт.выравнивание < /translation> + < /message> + < message > + Top < /source> + < translation + type = "vanished" > Сверху < /translation> + < /message> + < message > + Center < /source> + < translation + type = "vanished" > По + центру < /translation> + < /message> + < message > + Bottom < /source> + < translation + type = "vanished" > Снизу < /translation> + < /message> + < /context> + < context > + olive::TextGeneratorV1 < /name> + < message > + + Sample + Text < /source> + < translation + type = "unfinished" > Образец + текста < /translation> + < /message> + < message > + + Text(Legacy) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Generate + rich + text. < /source> + < translation + type = "unfinished" > Создать + форматированный + текст. < /translation> + < /message> + < message > + + Text < /source> + < translation + type = "unfinished" > Текст < /translation> + < /message> + < message > + + Enable + HTML < /source> + < translation + type = "unfinished" > Включить + HTML < /translation> + < /message> + < message > + + Font < /source> + < translation + type = "unfinished" > Шрифт < /translation> + < /message> + < message > + + Font + Size < /source> + < translation + type = "unfinished" > Кегль + шрифта < /translation> + < /message> + < message > + + Color < /source> + < translation + type = "unfinished" > Цвет < /translation> + < /message> + < message > + + Vertical + Align < /source> + < translation + type = "unfinished" > Верт.выравнивание < /translation> + < /message> + < message > + + Top < /source> + < translation + type = "unfinished" > Сверху < /translation> + < /message> + < message > + + Center < /source> + < translation + type = "unfinished" > По + центру < /translation> + < /message> + < message > + + Bottom < /source> + < translation + type = "unfinished" > Снизу < /translation> + < /message> + < /context> + < context > + olive::TextGeneratorV2 < /name> + < message > + + Sample + Text < /source> + < translation + type = "unfinished" > Образец + текста < /translation> + < /message> + < message > + + Text(Legacy) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Generate + rich + text. < /source> + < translation + type = "unfinished" > Создать + форматированный + текст. < /translation> + < /message> + < message > + + Text < /source> + < translation + type = "unfinished" > Текст < /translation> + < /message> + < message > + + Enable + HTML < /source> + < translation + type = "unfinished" > Включить + HTML < /translation> + < /message> + < message > + + Font < /source> + < translation + type = "unfinished" > Шрифт < /translation> + < /message> + < message > + + Font + Size < /source> + < translation + type = "unfinished" > Кегль + шрифта < /translation> + < /message> + < message > + + Vertical + Align < /source> + < translation + type = "unfinished" > Верт.выравнивание < /translation> + < /message> + < message > + + Top < /source> + < translation + type = "unfinished" > Сверху < /translation> + < /message> + < message > + + Center < /source> + < translation + type = "unfinished" > По + центру < /translation> + < /message> + < message > + + Bottom < /source> + < translation + type = "unfinished" > Снизу < /translation> + < /message> + < /context> + < context > + olive::TextGeneratorV3 < /name> + < message > + + Sample + Text < /source> + < translation + type = "unfinished" > Образец + текста < /translation> + < /message> + < message > + + + Text < /source> + < translation + type = "unfinished" > Текст < /translation> + < /message> + < message > + + Generate + rich + text. < /source> + < translation + type = "unfinished" > Создать + форматированный + текст. < /translation> + < /message> + < message > + + Vertical + Alignment < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Top < /source> + < translation + type = "unfinished" > Сверху < /translation> + < /message> + < message > + + Middle < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Bottom < /source> + < translation + type = "unfinished" > Снизу < /translation> + < /message> + < message > + + Arguments < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Set + Text + Vertical + Alignment < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TextGizmo < /name> + < message > + + Edit + Text < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ThreeWayColorNode < /name> + < message > + + Input < /source> + < translation + type = "unfinished" > Вход < /translation> + < /message> + < message > + + Shadows < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Midtones < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Highlights < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Shadows + Amount < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Midtones + Amount < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Highlights + Amount < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Three - Way + Color < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Adjusts + shadows, midtones, and + highlights + separately. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TileDistortNode < /name> + < message > + + Tile < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Infinitely + tile + an + image + horizontally + and + vertically. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Input < /source> + < translation + type = "unfinished" > Вход < /translation> + < /message> + < message > + + Scale < /source> + < translation + type = "unfinished" > Масштаб < /translation> + < /message> + < message > + + Position < /source> + < translation + type = "unfinished" > Позиция < /translation> + < /message> + < message > + + Mirror + Horizontally < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Mirror + Vertically < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Anchor < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Top - Left < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Top - Center < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Top - Right < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Middle - Left < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Middle - Center < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Middle - Right < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Bottom - Left < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Bottom - Center < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Bottom - Right < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TimeBasedPanel < /name> + < message > + + (none) < /source> + < translation > (нет) < /translation> + < /message> + < /context> + < context > + olive::TimeBasedWidget < /name> + < message > + Set + Marker < /source> + < translation + type = "vanished" > Установить + маркер < /translation> + < /message> + < message > + Marker + name: + < translation + type = "vanished" > Название + маркера: + < /message> + < message > + + Set + In / Out + Point < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Reset + In / Out + Points < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Cleared + In / Out + Points < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Added + Marker < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TimeFormatNode < /name> + < message > + + Time + Format < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Format + time( in Unix + epoch + seconds + ) + into + a + string. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Time < /source> + < translation + type = "unfinished" > Время < /translation> + < /message> + < message > + + Format < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Interpret + time as local + time < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TimeInput < /name> + < message > + + Time < /source> + < translation > Время < /translation> + < /message> + < message > + + Generates + the + time( in seconds + ) + at + this + frame. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TimeOffsetNode < /name> + < message > + + Time + Offset < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Offset + time + passing + through + the + graph. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TimeRemapNode < /name> + < message > + + Time + Remap < /source> + < translation > Переназначить + время < /translation> + < /message> + < message > + + Arbitrarily + remap + time + through + the + nodes. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TimelinePanel < /name> + < message > + + Timeline < /source> + < translation > Монтажный + стол < /translation> + < /message> + < /context> + < context > + olive::TimelineView < /name> + < message > + + In + : % + 1 + Out: % + 2 + Duration: % + 3 < /source> + < translation > Начало + : % + 1 + Конец: % + 2 + Длительность: % + 3 < /translation> + < /message> + < /context> + < context > + olive::TimelineWidget < /name> + < message > + + Split + Clips + At + Playhead < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Deleted + Clips < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Inserted + Footage + At + Playhead < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Overwrote + Footage + At + Playhead < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Linked + Clips < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Added + Default + Transitions < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Deleted + In + To + Out < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Toggled + Clips + Enabled < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Set + Colors + of % 1 + Clips < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Synchronize + Clips + by + Source + Time < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Synchronize + Clips + by + Waveform < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Recorded + Audio + Clip < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Nested + Sequence % 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Nested + Clips < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Synchronize + by + Source + Time < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Synchronize + by + Waveform < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Cache < /source> + < translation + type = "unfinished" > Кэш < /translation> + < /message> + < message > + + Auto - Cache < /source> + < translation + type = "unfinished" > Автокэширование < /translation> + < /message> + < message > + + Cache + All < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Cache + In / Out < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Discard < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Generate + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Use + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Reveal + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Delete + Proxy < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Reveal in Footage + Viewer < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Reveal in Project < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Multi - Cam < /source> + < translation + type = "unfinished" > + < /message> + < message > + + + Properties < /source> + < translation > Свойства < /translation> + < /message> + < message > + + Use + Audio + Time + Units < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Show + Thumbnails < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Disabled < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Only + At + In + Points < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Enabled < /source> + < translation + type = "unfinished" > Включено < /translation> + < /message> + < message > + + Show + Waveforms < /source> + < translation > Показывать + волновую + форму < /translation> + < /message> + < message > + + Renamed % 1 + Clip(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Created + Subtitle + Track < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Enabled + Auto - Caching + On % 1 + Clip(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Disabled + Auto - Caching + On % 1 + Clip(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Discard + Cache < /source> + < translation + type = "unfinished" > + < /message> + < message > + + This + will + discard + all + cache + for this clip.If + the + clip + has + auto - cache + enabled, it + will + be + recached + immediately.This + cannot + be + undone.Do + you + wish + to + continue + ? + < translation type = "unfinished" > + < /message> + < message > + + Multi - Cam + Enabled + On % 1 + Clip(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Multi - Cam + Disabled + On % 1 + Clip(s) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Nudged + Clips < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Moved + Clip(s) + To + Point < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Rippled + Clip(s) + To + Point < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Cut + Clip(s) + To + Point < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Pasted % 1 + Clip(s) < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ToolPanel < /name> + < message > + + Tools < /source> + < translation > Инструменты < /translation> + < /message> + < /context> + < context > + olive::Toolbar < /name> + < message > + + Pointer + Tool < /source> + < translation > Указатель < /translation> + < /message> + < message > + + Track + Select + Tool < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Edit + Tool < /source> + < translation > Выделение < /translation> + < /message> + < message > + + Ripple + Tool < /source> + < translation > Монтаж + со + сдвигом < /translation> + < /message> + < message > + + Rolling + Tool < /source> + < translation > Монтаж + с + совмещением < /translation> + < /message> + < message > + + Razor + Tool < /source> + < translation > Подрезка < /translation> + < /message> + < message > + + Slip + Tool < /source> + < translation > Прокрутка + с + совмещением < /translation> + < /message> + < message > + + Slide + Tool < /source> + < translation > Прокрутка < /translation> + < /message> + < message > + + Hand + Tool < /source> + < translation > Навигация < /translation> + < /message> + < message > + + Zoom + Tool < /source> + < translation > Масштаб < /translation> + < /message> + < message > + + Transition + Tool < /source> + < translation > Переход < /translation> + < /message> + < message > + + Record + Tool < /source> + < translation > Запись < /translation> + < /message> + < message > + + Add + Tool < /source> + < translation > Добавить < /translation> + < /message> + < message > + + Toggle + Snapping < /source> + < translation > Переключить + прилипание < /translation> + < /message> + < /context> + < context > + olive::Track < /name> + < message > + + Video + Track % 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Audio + Track % 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Subtitle + Track % 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Track < /source> + < translation > Дорожка < /translation> + < /message> + < message > + + Node + for representing and + processing + a + single + array + of + Blocks + sorted + by + time.Also + represents + the + end + of + a + Sequence. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Blocks < /source> + < translation > Блоки < /translation> + < /message> + < message > + + Muted < /source> + < translation > Приглушено < /translation> + < /message> + < message > + Video % 1 < /source> + < translation + type = "vanished" > Видео % 1 < /translation> + < /message> + < message > + Audio % 1 < /source> + < translation + type = "vanished" > Звук % 1 < /translation> + < /message> + < message > + Subtitle % 1 < /source> + < translation + type = "vanished" > Субтитры % 1 < /translation> + < /message> + < message > + Track % 1 < /source> + < translation + type = "vanished" > Дорожка % 1 < /translation> + < /message> + < message > + + V < /source> + < translation + type = "unfinished" > V < /translation> + < /message> + < message > + + A < /source> + < translation + type = "unfinished" > A < /translation> + < /message> + < message > + + S < /source> + < translation + type = "unfinished" > S < /translation> + < /message> + < /context> + < context > + olive::TrackViewItem < /name> + < message > + M < /source> + < translation + type = "vanished" > М < /translation> + < /message> + < message > + L < /source> + < translation + type = "vanished" > Б < /translation> + < /message> + < message > + + & Delete < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Delete + All & Empty < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Deleted + Track & quot; + % + 1 & quot; + + < translation + type = "unfinished" > + < /message> + < message > + + + Delete + All + Empty < /source> + < translation + type = "unfinished" > + < /message> + < message > + + No + tracks + are + currently + empty < /source> + < translation + type = "unfinished" > + < /message> + < message > + + This + will + delete the + following + tracks: -%2 + % + 1 -Are you sure you wish to delete this footage? - - - - - %1 (%2) - %1 (%2) - - - - Open in New Tab - Открыть в новой вкладке - - - - Open in New Window - Открыть в новом окне - - - - Reveal in Explorer - Открыть в Проводнике - - - - Reveal in Finder - Открыть в Finder - - - - Reveal in File Manager - Открыть в файловом менеджере - - - - - Replace Footage - - - - - Proxy - - - - - Generate Proxy - - - - - Use Proxy - - - - - Reveal Proxy - - - - - Delete Proxy - - - - Pre-Cache - Предкэширование - - - For "%1" - Для "%1" - - - - Rename - - - - - Delete - Удалить - - - - P&roperties - С&войства - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - - Replaced Footage - - - - - Deleted %1 Item(s) - - - - - olive::ProjectExplorerNavigation - - - Go to parent folder - Перейти в родительскую папку - - - - olive::ProjectImportErrorDialog - - - Import Error - Ошибка импорта - - - - The following files failed to import. Oak Video Editor likely does not support their formats. - - - - - olive::ProjectImportTask - - - Importing %n file(s) - - Импортируется %n файл - Импортируются %n файла - Импортируется %n файлов - - - - - olive::ProjectLoadBaseTask - - - Loading '%1' - Загружается '%1' - - - - olive::ProjectLoadTask - - - This project is from a version of Oak Video Editor that is no longer supported in this version. - - - - - This project is from a newer version of Oak Video Editor and cannot be opened in this version. - - - - - Failed to determine project version. - - - - - Failed to read file "%1" for reading. - - - - - Failed to read XML document. File may be corrupt. Error was: %1 - - - - - Failed to find any data to parse. - - - - - Unknown error. - - - - - olive::ProjectPanel - - - Folder - Папка - - - - Project - Проект - - - - (none) - (нет) - - - - olive::ProjectPropertiesDialog - - - Project Properties for '%1' - - - - - OpenColorIO Configuration: - - - - - (default) - (по умолчанию) - - - - Default Input Color Space: - - - - - Reference Space: - - - - - Scene Linear - Линейная сцена - - - - Compositing Log - Лог. композитинг - - - - Browse - Просмотр - - - - Color Management - Управление цветом - - - - Use Default Location - Размещение по умолчанию - - - - Store Alongside Project - Хранить рядом с проектом - - - - Use Custom Location: - - - - - Disk Cache Settings - Параметры кэша на диске - - - - Disk Cache - Дисковый кэш - - - - OpenColorIO Config Error - - - - - Failed to set OpenColorIO configuration: %1 - - - - - Invalid path - - - - - The custom cache path is invalid. Please check it and try again. - - - - - Browse for OpenColorIO configuration - - - - - olive::ProjectSaveTask - - - Saving '%1' - Сохраняется '%1' - - - - Failed to write XML data. - - - - - Failed to open file "%1" for writing. - - - - - Unknown error. - - - - Failed to write XML data - Не удалось записать данные XML - - - - Failed to overwrite "%1". Project has been saved as "%2" instead. - - - - - olive::ProjectSettingsNode - - Disk Cache Location - Размещение кеша - - - Disk Cache Path - Путь к кешу на диске - - - Use Default Location - Размещение по умолчанию - - - Store Alongside Project - Хранить рядом с проектом - - - Use Custom Location - Заказное размещение - - - (default) - (по умолчанию) - - - Project Settings - Параметры проекта - - - - olive::ProjectToolbar - - - New... - Создать… - - - - Open Project - Открыть проект - - - - Save Project - Сохранить проект - - - - Tree View - Древовидный режим - - - - List View - Просмотр списка - - - - Icon View - Просмотр миниатюр - - - - Search media, markers, etc. - Искать файлы, маркеры и т.д. - - - - olive::ProjectViewModel - - - Name - Название - - - - Duration - Длительность - - - - Rate - Частота - - - - Modified - Изменено - - - - Created - Создано - - - - Renamed Item "%1" to "%2" - - - - - Move %1 Item(s) - - - - Move Items - Переместить объекты - - - - olive::ProxyTask - - - Generating Proxy %1:%2 - - - - - Failed to generate proxy: ffmpeg executable was not found - - - - - Failed to create proxy output directory - - - - - Failed to start ffmpeg for proxy generation - - - - - Proxy generation was cancelled - - - - - ffmpeg failed to generate proxy: %1 - - - - - ffmpeg finished but proxy file was not created - - - - - olive::RationalSlider - - - NaN - - - - - Float - - - - - Rational - - - - - Time - Время - - - - olive::RenderCancelDialog - - - Waiting for workers to finish... - - - - - Renderer - - - - - olive::RippleDistortNode - - - Ripple - - - - - Distorts an image with a ripple effect. - - - - - Input - Вход - - - - Frequency - - - - - Intensity - - - - - Evolution - - - - - Position - Позиция - - - - Stretch - Растянуть - - - - olive::SaveOTIOTask - - - Exporting project to OpenTimelineIO - Экспорт проекта в OpenTimelineIO - - - - Project contains no sequences to export. - В проекте нет экспортируемых последовательностей. - - - - Failed to serialize sequence "%1" - Не удалось сериализовать последовательность "%1" - - - - olive::ScopePanel - - - Waveform - Волновая форма - - - - Vectorscope - - - - - Histogram - Гистограмма - - - - Scopes - Анализаторы - - - Scope - Анализатор - - - - olive::SeekableWidget - - - Deleted %1 Marker(s) - - - - - Pasted %1 Marker(s) - - - - - Moved %1 Marker(s) - - - - - Changed Color of %1 Marker(s) - - - - - Properties - Свойства - - - - Changed Marker Length - - - - - Changed Workarea Length - - - - - olive::Sequence - - - Video Tracks - Видеодорожки - - - - Audio Tracks - Звуковые дорожки - - - - Subtitle Tracks - Дорожки субтитров - - - - Sequence - Последовательность - - - - A series of cuts that result in an edited video. Also called a timeline. - - - - - olive::SequenceDialog - - - Name: - Название: - - - - Set As Default - Использовать по умолчанию - - - - New Sequence - Новая последовательность - - - - Editing "%1" - Правка "%1" - - - - Error editing Sequence - Ошибка при редактировании последовательности - - - - Please enter a name for this Sequence. - Введите название этой последовательности - - - - Don't ask me again - Больше не спрашивать - - - - Low Quality Preview - - - - - The preview resolution has been set to a non-float format. This may cause banding and clipping artifacts in the preview. + Do + you + wish + to + continue + ? + < translation type = "unfinished" > + < /message> + < message > + + Deleted + All + Empty + Tracks < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::TransformDistortNode < /name> + < message > + + Parent < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Auto - Scale < /source> + < translation > Автомасштаб < /translation> + < /message> + < message > + + Texture < /source> + < translation > Текстура < /translation> + < /message> + < message > + + Interpolation < /source> + < translation > Интерполяция < /translation> + < /message> + < message > + + None < /source> + < translation > Нет < /translation> + < /message> + < message > + + Fit < /source> + < translation > Уместить < /translation> + < /message> + < message > + + Fill < /source> + < translation > Заполнить < /translation> + < /message> + < message > + + Stretch < /source> + < translation > Растянуть < /translation> + < /message> + < message > + + Nearest + Neighbor < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Bilinear < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Mipmapped + Bilinear < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Transform < /source> + < translation > Трансформация < /translation> + < /message> + < message > + + Transform + an + image in 2 + D + space.Equivalent + to + multiplying + by + an + orthographic + matrix. < /source> + < translation > Преобразует + изображение + в + 2 + D - пространстве.Эквивалент + умножения + на + прямоугольную + матрицу. < /translation> + < /message> + < /context> + < context > + olive::TransitionBlock < /name> + < message > + + From < /source> + < translation > От < /translation> + < /message> + < message > + + To < /source> + < translation > До < /translation> + < /message> + < message > + + Curve < /source> + < translation > Кривая < /translation> + < /message> + < message > + + Center + Offset < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Linear < /source> + < translation > Линейный < /translation> + < /message> + < message > + + Exponential < /source> + < translation > Экспоненциальный < /translation> + < /message> + < message > + + Logarithmic < /source> + < translation > Логарифмический < /translation> + < /message> + < /context> + < context > + olive::TrigonometryNode < /name> + < message > + + Trigonometry < /source> + < translation > Тригонометрия < /translation> + < /message> + < message > + + Perform + a + trigonometry + operation + on + a + value. < /source> + < translation > Произвести + тригонометрическую + операцию + над + значением < /translation> + < /message> + < message > + + Sine < /source> + < translation > Синус < /translation> + < /message> + < message > + + Cosine < /source> + < translation > Косинус < /translation> + < /message> + < message > + + Tangent < /source> + < translation > Тангенс < /translation> + < /message> + < message > + + Inverse + Sine < /source> + < translation > Инверт.синус < /translation> + < /message> + < message > + + Inverse + Cosine < /source> + < translation > Инверт.косинус < /translation> + < /message> + < message > + + Inverse + Tangent < /source> + < translation > Инверт.тангенс < /translation> + < /message> + < message > + + Hyperbolic + Sine < /source> + < translation > Гипербол.синус < /translation> + < /message> + < message > + + Hyperbolic + Cosine < /source> + < translation > Гипербол.косинус < /translation> + < /message> + < message > + + Hyperbolic + Tangent < /source> + < translation > Гипербол.тангенс < /translation> + < /message> + < message > + + Method < /source> + < translation > Способ < /translation> + < /message> + < message > + + Value < /source> + < translation + type = "unfinished" > Значение < /translation> + < /message> + < /context> + < context > + olive::UndoStack < /name> + < message > + + New / Open + Project < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Command < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ValueNode < /name> + < message > + + Value < /source> + < translation > Значение < /translation> + < /message> + < message > + + Create + a + single + value + that + can + be + connected + to + various + other + inputs. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::VideoDividerComboBox < /name> + < message > + 1 / % 1 < /source> + < translation + type = "vanished" > 144 + p + { + 1 / % 1 ? + } + + < /message> + < /context> + < context > + olive::VideoParamEdit < /name> + < message > + Enabled + : + + < translation + type = "vanished" > Включено + : + + < /message> + < message > + Width + : + + < translation + type = "vanished" > Ширина + : + + < /message> + < message > + Height + : + + < translation + type = "vanished" > Высота + : + + < /message> + < message > + Depth + : + + < translation + type = "vanished" > Глубина + : + + < /message> + < message > + Format + : + + < translation + type = "vanished" > Формат + : + + < /message> + < message > + Frame + Rate: + < translation + type = "vanished" > Частота + кадров: + < /message> + < message > + Pixel + Aspect + Ratio: + < translation + type = "vanished" > Соотн.сторон + : + + < /message> + < message > + Interlacing + : + + < translation + type = "vanished" > Чересстрочность + : + + < /message> + < message > + Channel + Count: + < translation + type = "vanished" > Число + каналов: + < /message> + < message > + RGB < /source> + < translation + type = "vanished" > RGB < /translation> + < /message> + < message > + RGBA < /source> + < translation + type = "vanished" > RGBA < /translation> + < /message> + < message > + Divider + : + + < translation + type = "vanished" > Делитель + : + + < /message> + < message > + Stream + Index: + < translation + type = "vanished" > Индекс + потока: + < /message> + < message > + Video + Type: + < translation + type = "vanished" > Тип + видео: + < /message> + < message > + Video < /source> + < translation + type = "vanished" > Видео < /translation> + < /message> + < message > + Still < /source> + < translation + type = "vanished" > Изображение < /translation> + < /message> + < message > + Image + Sequence < /source> + < translation + type = "vanished" > Последовательность + изображений < /translation> + < /message> + < message > + Start + Time < /source> + < translation + type = "vanished" > Время + начала < /translation> + < /message> + < message > + End + Time < /source> + < translation + type = "vanished" > Время + конца < /translation> + < /message> + < message > + Colorspace < /source> + < translation + type = "vanished" > Цветовое + пространство < /translation> + < /message> + < message > + Default( % 1 + ) + + < translation + type = "vanished" > По + умолчанию( % 1 + ) + + < /message> + < /context> + < context > + olive::VideoStreamProperties < /name> + < message > + + Pixel + Aspect: + < translation + type = "unfinished" > + < /message> + < message > + + Interlacing + : + + < translation + type = "unfinished" > Чересстрочность + : + + < /message> + < message > + + Color + Space: + < translation + type = "unfinished" > Пространство + : + + < /message> + < message > + + Default( % 1 + ) + + < translation + type = "unfinished" > По + умолчанию( % 1 + ) + + < /message> + < message > + + Color + Range: + < translation + type = "unfinished" > + < /message> + < message > + + Limited(16 - 235) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Full(0 - 255) < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Premultiplied + Alpha < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Image + Sequence < /source> + < translation + type = "unfinished" > Последовательность + изображений < /translation> + < /message> + < message > + + Start + Index: + < translation + type = "unfinished" > + < /message> + < message > + + End + Index: + < translation + type = "unfinished" > + < /message> + < message > + + Frame + Rate: + < translation + type = "unfinished" > Частота + кадров: + < /message> + < message > + + Invalid + Configuration < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Image + sequence + end + index + must + be + a + value + higher + than + the + start + index. < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ViewerDisplayWidget < /name> + < message + numerus = "yes" > + + % n + skipped + frame(s) + detected + during + playback < /source> + < translation > + Найден % n + пропущенный + кадр + при + воспроизведении < /numerusform> + < numerusform > Найдено % n + пропущенных + кадра + при + воспроизведении < /numerusform> + < numerusform > Найдено % n + пропущенных + кадров + при + воспроизведении < /numerusform> + < /translation> + < /message> + < message > + + % 1 + FPS < /source> + < translation > % 1 + к / с < /translation> + < /message> + < message > + + % 1 + frames + skipped < /source> + < translation > % 1 + кадров + пропущено < /translation> + < /message> + < message > + + Dragged + Gizmo < /source> + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ViewerOutput < /name> + < message > + + Viewer < /source> + < translation > Монитор < /translation> + < /message> + < message > + + Interface + between + a + Viewer + panel + and + the + node + system. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + % 1 + FPS < /source> + < translation > % 1 + к / с < /translation> + < /message> + < message > + + % 1 + Hz < /source> + < translation > % 1 + Гц < /translation> + < /message> + < message > + + Video + Parameters < /source> + < translation > Параметры + видео < /translation> + < /message> + < message > + + Audio + Parameters < /source> + < translation > Параметры + звука < /translation> + < /message> + < message > + + Subtitle + Parameters < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Texture < /source> + < translation > Текстура < /translation> + < /message> + < message > + + Samples < /source> + < translation > Сэмплы < /translation> + < /message> + < message > + Auto - Cache < /source> + < translation + type = "vanished" > Автокэширование < /translation> + < /message> + < /context> + < context > + olive::ViewerPanel < /name> + < message > + + Viewer < /source> + < translation > Монитор < /translation> + < /message> + < /context> + < context > + olive::ViewerTextEditorToolBar < /name> + < message > + + Stretch + : + + < translation + type = "unfinished" > + < /message> + < message > + + + + % 1 % + < translation + type = "unfinished" > % 1 % + < /message> + < message > + + Kerning + : + + < translation + type = "unfinished" > + < /message> + < message > + + Line + Height: + < translation + type = "unfinished" > + < /message> + < /context> + < context > + olive::ViewerWidget < /name> + < message > + + Error < /source> + < translation > Ошибка < /translation> + < /message> + < message > + + No in or + out + points + are + set + to + cache. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Created + Shape < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Audio + scrubbing + failed: % + 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Audio + Error < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + start + audio: % + 1 -Do you wish to continue? - - - - - Set Sequence Parameters For "%1" - - - - - Confirm Set As Default - - - - - Are you sure you want to set the current parameters as defaults? - - - - - olive::SequenceDialogParameterTab - - - Video - Видео - - - - Width: - Ширина: - - - - Height: - Высота: - - - - Frame Rate: - Частота кадров: - - - - Pixel Aspect Ratio: - - - - - Interlacing: - Чересстрочность: - - - - Audio - Звук - - - - Sample Rate: - Частота дискр.: - - - - Channels: - Каналов: - - - - Preview - Предпросмотр - - - - Resolution: - Разрешение: - - - - Quality: - Качество: - - - Auto-Cache: - Автокэширование: - - - - Save Preset - Сохранить профиль - - - - (%1x%2) - (%1x%2) - - - - olive::SequenceDialogPresetTab - - - Preset - Профиль - - - - My Presets - Мои профили - - - - 4K UHD - 4K UHD - - - - 1080p - 1080p - - - - 720p - 720p - - - - NTSC - NTSC - - - - PAL - PAL - - - - %1 23.976 FPS - %1 23,976 к/с - - - - %1 25 FPS - %1 25 к/с - - - - %1 29.97 FPS - %1 29,97 к/с - - - - %1 50 FPS - %1 50 к/с - - - - %1 59.94 FPS - %1 59,94 к/с - - - - %1 Standard - - - - - %1 Widescreen - - - - - Delete Preset - Удалить профиль - - - - olive::SequenceViewerPanel - - - Sequence Viewer - Монитор последовательностей - - - - olive::ShapeNode - - - Shape - Фигура - - - - Generate a 2D primitive shape. - Нарисовать геометрический примитив. - - - - Type - Тип - - - - Radius - Радиус - - - - Rectangle - Прямоугольник - - - - Ellipse - Эллипс - - - - Rounded Rectangle - - - - - olive::ShapeNodeBase - - - Position - Позиция - - - - Size - Размер - - - - Color - Цвет - - - - olive::SliderBase - - - --- - --- - - - - Invalid Value - Некорректное значение - - - - The entered value is not valid for this field. - - - - - %n minute(s) - - %n минута - %n минуты - %n минут - - - - - olive::SolidGenerator - - - Solid - Заливка - - - - Generate a solid color. - Создать сплошную заливку. - - - - Color - Цвет - - - - olive::SpeedDurationDialog - - - Clip Properties - - - - - Speed/Duration - Скорость и длительность - - - - Speed: - Скорость: - - - - Duration: - Длительность: - - - - Link Speed and Duration - Связать скорость и длительность - - - - Reverse - Развернуть - - - - Maintain Audio Pitch - - - - - Ripple Trailing Clips - - - - - - Loop - Петля - - - - Loop: - - - - - None - Нет - - - - Clamp - - - - - Set %1 Clip Properties - - - - - Set Clip "%1" Properties - - - - - olive::StringSlider - - - (none) - (нет) - - - - olive::StrokeFilterNode - - - Stroke - Обводка - - - - Creates a stroke outline around an image. - - - - - Input - Вход - - - - Color - Цвет - - - - Radius - Радиус - - - - Opacity - Непрозрачность - - - - Inner - - - - - olive::SubtitleBlock - - - Subtitle - Субтитры - - - - A time-based node representing a single subtitle element for a certain period of time. - - - - - Text - Текст - - - - olive::SwirlDistortNode - - - Swirl - - - - - Distorts an image along a sine wave. - - - - - Input - Вход - - - - Radius - Радиус - - - - Angle - - - - - Position - Позиция - - - - olive::Task - - - Task - Задача - - - - Unknown error - Неизвестная ошибка - - - - olive::TaskDialog - - - Task Failed - Не удалось выполнить задачу - - - - olive::TaskManagerPanel - - - Task Manager - Управление задачами - - - - olive::TaskViewItem - - - Error: %1 - Ошибка: %1 - - - - olive::TextGenerator - - Sample Text - Образец текста - - - Text - Текст - - - Generate rich text. - Создать форматированный текст. - - - Enable HTML - Включить HTML - - - Font - Шрифт - - - Font Size - Кегль шрифта - - - Color - Цвет - - - Vertical Align - Верт. выравнивание - - - Top - Сверху - - - Center - По центру - - - Bottom - Снизу - - - - olive::TextGeneratorV1 - - - Sample Text - Образец текста - - - - Text (Legacy) - - - - - Generate rich text. - Создать форматированный текст. - - - - Text - Текст - - - - Enable HTML - Включить HTML - - - - Font - Шрифт - - - - Font Size - Кегль шрифта - - - - Color - Цвет - - - - Vertical Align - Верт. выравнивание - - - - Top - Сверху - - - - Center - По центру - - - - Bottom - Снизу - - - - olive::TextGeneratorV2 - - - Sample Text - Образец текста - - - - Text (Legacy) - - - - - Generate rich text. - Создать форматированный текст. - - - - Text - Текст - - - - Enable HTML - Включить HTML - - - - Font - Шрифт - - - - Font Size - Кегль шрифта - - - - Vertical Align - Верт. выравнивание - - - - Top - Сверху - - - - Center - По центру - - - - Bottom - Снизу - - - - olive::TextGeneratorV3 - - - Sample Text - Образец текста - - - - - Text - Текст - - - - Generate rich text. - Создать форматированный текст. - - - - Vertical Alignment - - - - - Top - Сверху - - - - Middle - - - - - Bottom - Снизу - - - - Arguments - - - - - Set Text Vertical Alignment - - - - - olive::TextGizmo - - - Edit Text - - - - - olive::ThreeWayColorNode - - - Input - Вход - - - - Shadows - - - - - Midtones - - - - - Highlights - - - - - Shadows Amount - - - - - Midtones Amount - - - - - Highlights Amount - - - - - Three-Way Color - - - - - Adjusts shadows, midtones, and highlights separately. - - - - - olive::TileDistortNode - - - Tile - - - - - Infinitely tile an image horizontally and vertically. - - - - - Input - Вход - - - - Scale - Масштаб - - - - Position - Позиция - - - - Mirror Horizontally - - - - - Mirror Vertically - - - - - Anchor - - - - - Top-Left - - - - - Top-Center - - - - - Top-Right - - - - - Middle-Left - - - - - Middle-Center - - - - - Middle-Right - - - - - Bottom-Left - - - - - Bottom-Center - - - - - Bottom-Right - - - - - olive::TimeBasedPanel - - - (none) - (нет) - - - - olive::TimeBasedWidget - - Set Marker - Установить маркер - - - Marker name: - Название маркера: - - - - Set In/Out Point - - - - - Reset In/Out Points - - - - - Cleared In/Out Points - - - - - Added Marker - - - - - olive::TimeFormatNode - - - Time Format - - - - - Format time (in Unix epoch seconds) into a string. - - - - - Time - Время - - - - Format - - - - - Interpret time as local time - - - - - olive::TimeInput - - - Time - Время - - - - Generates the time (in seconds) at this frame. - - - - - olive::TimeOffsetNode - - - Time Offset - - - - - Offset time passing through the graph. - - - - - olive::TimeRemapNode - - - Time Remap - Переназначить время - - - - Arbitrarily remap time through the nodes. - - - - - olive::TimelinePanel - - - Timeline - Монтажный стол - - - - olive::TimelineView - - - In: %1 -Out: %2 -Duration: %3 - Начало: %1 -Конец: %2 -Длительность: %3 - - - - olive::TimelineWidget - - - Split Clips At Playhead - - - - - Deleted Clips - - - - - Inserted Footage At Playhead - - - - - Overwrote Footage At Playhead - - - - - Linked Clips - - - - - Added Default Transitions - - - - - Deleted In To Out - - - - - Toggled Clips Enabled - - - - - Set Colors of %1 Clips - - - - - Synchronize Clips by Source Time - - - - - Synchronize Clips by Waveform - - - - - Recorded Audio Clip - - - - - Nested Sequence %1 - - - - - Nested Clips - - - - - Synchronize by Source Time - - - - - Synchronize by Waveform - - - - - Cache - Кэш - - - - Auto-Cache - Автокэширование - - - - Cache All - - - - - Cache In/Out - - - - - Discard - - - - - Proxy - - - - - Generate Proxy - - - - - Use Proxy - - - - - Reveal Proxy - - - - - Delete Proxy - - - - - Reveal in Footage Viewer - - - - - Reveal in Project - - - - - Multi-Cam - - - - - - Properties - Свойства - - - - Use Audio Time Units - - - - - Show Thumbnails - - - - - Disabled - - - - - Only At In Points - - - - - Enabled - Включено - - - - Show Waveforms - Показывать волновую форму - - - - Renamed %1 Clip(s) - - - - - Created Subtitle Track - - - - - Enabled Auto-Caching On %1 Clip(s) - - - - - Disabled Auto-Caching On %1 Clip(s) - - - - - Discard Cache - - - - - This will discard all cache for this clip. If the clip has auto-cache enabled, it will be recached immediately. This cannot be undone. - -Do you wish to continue? - - - - - Multi-Cam Enabled On %1 Clip(s) - - - - - Multi-Cam Disabled On %1 Clip(s) - - - - - Nudged Clips - - - - - Moved Clip(s) To Point - - - - - Rippled Clip(s) To Point - - - - - Cut Clip(s) To Point - - - - - Pasted %1 Clip(s) - - - - - olive::ToolPanel - - - Tools - Инструменты - - - - olive::Toolbar - - - Pointer Tool - Указатель - - - - Track Select Tool - - - - - Edit Tool - Выделение - - - - Ripple Tool - Монтаж со сдвигом - - - - Rolling Tool - Монтаж с совмещением - - - - Razor Tool - Подрезка - - - - Slip Tool - Прокрутка с совмещением - - - - Slide Tool - Прокрутка - - - - Hand Tool - Навигация - - - - Zoom Tool - Масштаб - - - - Transition Tool - Переход - - - - Record Tool - Запись - - - - Add Tool - Добавить - - - - Toggle Snapping - Переключить прилипание - - - - olive::Track - - - Video Track %1 - - - - - Audio Track %1 - - - - - Subtitle Track %1 - - - - - Track - Дорожка - - - - Node for representing and processing a single array of Blocks sorted by time. Also represents the end of a Sequence. - - - - - Blocks - Блоки - - - - Muted - Приглушено - - - Video %1 - Видео %1 - - - Audio %1 - Звук %1 - - - Subtitle %1 - Субтитры %1 - - - Track %1 - Дорожка %1 - - - - V - V - - - - A - A - - - - S - S - - - - olive::TrackViewItem - - M - М - - - L - Б - - - - &Delete - - - - - Delete All &Empty - - - - - Deleted Track "%1" - - - - - - Delete All Empty - - - - - No tracks are currently empty - - - - - This will delete the following tracks: - -%1 - -Do you wish to continue? - - - - - Deleted All Empty Tracks - - - - - olive::TransformDistortNode - - - Parent - - - - - Auto-Scale - Автомасштаб - - - - Texture - Текстура - - - - Interpolation - Интерполяция - - - - None - Нет - - - - Fit - Уместить - - - - Fill - Заполнить - - - - Stretch - Растянуть - - - - Nearest Neighbor - - - - - Bilinear - - - - - Mipmapped Bilinear - - - - - Transform - Трансформация - - - - Transform an image in 2D space. Equivalent to multiplying by an orthographic matrix. - Преобразует изображение в 2D-пространстве. Эквивалент умножения на прямоугольную матрицу. - - - - olive::TransitionBlock - - - From - От - - - - To - До - - - - Curve - Кривая - - - - Center Offset - - - - - Linear - Линейный - - - - Exponential - Экспоненциальный - - - - Logarithmic - Логарифмический - - - - olive::TrigonometryNode - - - Trigonometry - Тригонометрия - - - - Perform a trigonometry operation on a value. - Произвести тригонометрическую операцию над значением - - - - Sine - Синус - - - - Cosine - Косинус - - - - Tangent - Тангенс - - - - Inverse Sine - Инверт. синус - - - - Inverse Cosine - Инверт. косинус - - - - Inverse Tangent - Инверт. тангенс - - - - Hyperbolic Sine - Гипербол. синус - - - - Hyperbolic Cosine - Гипербол. косинус - - - - Hyperbolic Tangent - Гипербол. тангенс - - - - Method - Способ - - - - Value - Значение - - - - olive::UndoStack - - - New/Open Project - - - - - Command - - - - - olive::ValueNode - - - Value - Значение - - - - Create a single value that can be connected to various other inputs. - - - - - olive::VideoDividerComboBox - - 1/%1 - 144p {1/%1?} - - - - olive::VideoParamEdit - - Enabled: - Включено: - - - Width: - Ширина: - - - Height: - Высота: - - - Depth: - Глубина: - - - Format: - Формат: - - - Frame Rate: - Частота кадров: - - - Pixel Aspect Ratio: - Соотн. сторон: - - - Interlacing: - Чересстрочность: - - - Channel Count: - Число каналов: - - - RGB - RGB - - - RGBA - RGBA - - - Divider: - Делитель: - - - Stream Index: - Индекс потока: - - - Video Type: - Тип видео: - - - Video - Видео - - - Still - Изображение - - - Image Sequence - Последовательность изображений - - - Start Time - Время начала - - - End Time - Время конца - - - Colorspace - Цветовое пространство - - - Default (%1) - По умолчанию (%1) - - - - olive::VideoStreamProperties - - - Pixel Aspect: - - - - - Interlacing: - Чересстрочность: - - - - Color Space: - Пространство: - - - - Default (%1) - По умолчанию (%1) - - - - Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Premultiplied Alpha - - - - - Image Sequence - Последовательность изображений - - - - Start Index: - - - - - End Index: - - - - - Frame Rate: - Частота кадров: - - - - Invalid Configuration - - - - - Image sequence end index must be a value higher than the start index. - - - - - olive::ViewerDisplayWidget - - - %n skipped frame(s) detected during playback - - Найден %n пропущенный кадр при воспроизведении - Найдено %n пропущенных кадра при воспроизведении - Найдено %n пропущенных кадров при воспроизведении - - - - - %1 FPS - %1 к/с - - - - %1 frames skipped - %1 кадров пропущено - - - - Dragged Gizmo - - - - - olive::ViewerOutput - - - Viewer - Монитор - - - - Interface between a Viewer panel and the node system. - - - - - %1 FPS - %1 к/с - - - - %1 Hz - %1 Гц - - - - Video Parameters - Параметры видео - - - - Audio Parameters - Параметры звука - - - - Subtitle Parameters - - - - - Texture - Текстура - - - - Samples - Сэмплы - - - Auto-Cache - Автокэширование - - - - olive::ViewerPanel - - - Viewer - Монитор - - - - olive::ViewerTextEditorToolBar - - - Stretch: - - - - - - - %1% - %1% - - - - Kerning: - - - - - Line Height: - - - - - olive::ViewerWidget - - - Error - Ошибка - - - - No in or out points are set to cache. - - - - - Created Shape - - - - - Audio scrubbing failed: %1 - - - - - Audio Error - - - - - Failed to start audio: %1 - -Please check your audio preferences and try again. - - - - - Changed Playback Resolution - - - - - - Safe Margins - Безопасная область - - - - Zoom - Масштаб - - - - Fit - Уместить - - - - %1% - %1% - - - - Full Screen - Полноэкранный режим - - - - Screen %1: %2x%3 - Экран %1: %2×%3 - - - - Playback Resolution - - - - - Deinterlace - - - - - Stop Playback On Last Frame - - - - - Audio Waveform - - - - - Automatically Show/Hide - - - - - Show Waveform Only - - - - - Show Both Viewer And Waveform - - - - - Subtitles - Субтитры - - - - Show Subtitles - - - - - Subtitle Properties - - - - - Use Anti-aliasing - - - - - Save Frame As Image - - - - - - Audio Recording - - - - - Project must be saved before you can record audio. - - - - - audio - - - - - Failed to start audio recording: %1 - - - - Scopes - Анализаторы - - - Cache - Кэш - - - - Show FPS - Показывать частоту кадров - - - Cache Entire Sequence - Закэшировать всю последовательность - - - Cache Sequence In/Out - Закэшировать вход/выход последовательности - - - - Off - Выкл. - - - - On - Вкл - - - - Custom Aspect - Другое соотношение - - - Show Audio Waveform - Показывать волновую форму - - - - olive::VolumeNode - - - - Volume - Громкость - - - - Adjusts the volume of an audio source. - Изменить громкость источника звука. - - - - Samples - Сэмплы - - - - olive::WaveDistortNode - - - Wave - - - - - Distorts an image along a sine wave. - - - - - Input - Вход - - - - Frequency - - - - - Intensity - - - - - Evolution - - - - - Direction - Направление - - - - Horizontal - По горизонтали - - - - Vertical - По вертикали - - - - olive::plugin::PluginNode - - - Source - Источник - - - - From - От - - - - To - До - - - - Filter - Фильтр - - - - Generator - Генератор - - - - Transition - Переход - - - - General - Общие - - - - Texture - Текстура - - - + Please + check + your + audio + preferences + and + try + again. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Changed + Playback + Resolution < /source> + < translation + type = "unfinished" > + < /message> + < message > + + + Safe + Margins < /source> + < translation > Безопасная + область < /translation> + < /message> + < message > + + Zoom < /source> + < translation > Масштаб < /translation> + < /message> + < message > + + Fit < /source> + < translation > Уместить < /translation> + < /message> + < message > + + % 1 % + < translation > % 1 % + < /message> + < message > + + Full + Screen < /source> + < translation > Полноэкранный + режим < /translation> + < /message> + < message > + + Screen % 1 + : % + 2 + x % 3 < /source> + < translation > Экран % 1 + : % + 2×% + 3 < /translation> + < /message> + < message > + + Playback + Resolution < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Deinterlace < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Stop + Playback + On + Last + Frame < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Audio + Waveform < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Automatically + Show / Hide < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Show + Waveform + Only < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Show + Both + Viewer + And + Waveform < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Subtitles < /source> + < translation + type = "unfinished" > Субтитры < /translation> + < /message> + < message > + + Show + Subtitles < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Subtitle + Properties < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Use + Anti - aliasing < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Save + Frame + As + Image < /source> + < translation + type = "unfinished" > + < /message> + < message > + + + Audio + Recording < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Project + must + be + saved + before + you + can + record + audio. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + audio < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Failed + to + start + audio + recording: % + 1 < /source> + < translation + type = "unfinished" > + < /message> + < message > + Scopes < /source> + < translation + type = "vanished" > Анализаторы < /translation> + < /message> + < message > + Cache < /source> + < translation + type = "vanished" > Кэш < /translation> + < /message> + < message > + + Show + FPS < /source> + < translation > Показывать + частоту + кадров < /translation> + < /message> + < message > + Cache + Entire + Sequence < /source> + < translation + type = "vanished" > Закэшировать + всю + последовательность < /translation> + < /message> + < message > + Cache + Sequence + In / Out < /source> + < translation + type = "vanished" > Закэшировать + вход / выход + последовательности < /translation> + < /message> + < message > + + Off < /source> + < translation > Выкл. < /translation> + < /message> + < message > + + On < /source> + < translation > Вкл < /translation> + < /message> + < message > + + Custom + Aspect < /source> + < translation > Другое + соотношение < /translation> + < /message> + < message > + Show + Audio + Waveform < /source> + < translation + type = "vanished" > Показывать + волновую + форму < /translation> + < /message> + < /context> + < context > + olive::VolumeNode < /name> + < message > + + + Volume < /source> + < translation > Громкость < /translation> + < /message> + < message > + + Adjusts + the + volume + of + an + audio + source. < /source> + < translation > Изменить + громкость + источника + звука. < /translation> + < /message> + < message > + + Samples < /source> + < translation > Сэмплы < /translation> + < /message> + < /context> + < context > + olive::WaveDistortNode < /name> + < message > + + Wave < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Distorts + an + image + along + a + sine + wave. < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Input < /source> + < translation + type = "unfinished" > Вход < /translation> + < /message> + < message > + + Frequency < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Intensity < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Evolution < /source> + < translation + type = "unfinished" > + < /message> + < message > + + Direction < /source> + < translation + type = "unfinished" > Направление < /translation> + < /message> + < message > + + Horizontal < /source> + < translation + type = "unfinished" > По + горизонтали < /translation> + < /message> + < message > + + Vertical < /source> + < translation + type = "unfinished" > По + вертикали < /translation> + < /message> + < /context> + < context > + olive::plugin::PluginNode < /name> + < message > + + Source < /source> + < translation + type = "unfinished" > Источник < /translation> + < /message> + < message > + + From < /source> + < translation + type = "unfinished" > От < /translation> + < /message> + < message > + + To < /source> + < translation + type = "unfinished" > До < /translation> + < /message> + < message > + + Filter < /source> + < translation + type = "unfinished" > Фильтр < /translation> + < /message> + < message > + + Generator < /source> + < translation + type = "unfinished" > Генератор < /translation> + < /message> + < message > + + Transition < /source> + < translation + type = "unfinished" > Переход < /translation> + < /message> + < message > + + General < /source> + < translation + type = "unfinished" > Общие < /translation> + < /message> + < message > + + Texture < /source> + < translation + type = "unfinished" > Текстура < /translation> + < /message> + < /context> + < /TS> diff --git a/app/ts/sr_RS.ts b/app/ts/sr_RS.ts index ddf8491ec..ab7065e5a 100644 --- a/app/ts/sr_RS.ts +++ b/app/ts/sr_RS.ts @@ -1,3832 +1,7152 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - Моно - - - - Stereo - Стерео - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - Непознато (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - Грешка при учитавању поставки - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > Моно < /translation> +< /message> +< message > + +Stereo < /source> +< translation > Стерео < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > Непознато(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > Грешка +при +учитавању +поставки < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - “Сесија” might not be the most adequate term for “session” - Неуспешно учитавање поставки апликације. Ова сесија ће користити задане поставке. +% 1 < /source> +< translatorcomment >“Сесија” might +not +be +the +most +adequate +term +for “ +session” +< translation > Неуспешно +учитавање +поставки +апликације.Ова +сесија +ће +користити +задане +поставке. -%1 - - - - Error saving settings - Грешка при спашавању поставки - - - - Failed to save application settings. The application may lack write permissions for this location. - Неуспешно спашавање поставки апликације. Апликацији можда недостају допуштења за писање у овој локацији. - - - - Footage - - %1 Hz - %1 Hz - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - - - - - Matrix - - - - - Text - - - - - Font - - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Bezier - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Promeni %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Izmeni parametre - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - - - - - Shape - - - - - Solid - - - - - Title - - - - - Tone - - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 1/%1 - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - Непознато (0x%1) - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > Грешка +при +спашавању +поставки < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > Неуспешно +спашавање +поставки +апликације.Апликацији +можда +недостају +допуштења +за +писање +у +овој +локацији. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +Hz < /source> +< translation +type = "obsolete" > % 1 +Hz < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Promeni % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Izmeni +parametre < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > Непознато(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + +About % 1 < /source> +< translation > О % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +је +нелинеарни +видео +уређивач.Овај +софтвер +је +слободан +и +заштићен +GNU +GPL - ом. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > Olive +тим +је +под +обавезом +да +обавести +кориснике +да +је +Olive - ов +изворни +код +доступан +за +преузимање +са +његове +веб +странице. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > Потражите +радњу +... + +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - О %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive је нелинеарни видео уређивач. Овај софтвер је слободан и заштићен GNU GPL-ом. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive тим је под обавезом да обавести кориснике да је Olive-ов изворни код доступан за преузимање са његове веб странице. - - - - olive::ActionSearch - - - Search for action... - Потражите радњу... - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bezier - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - - - Error - - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > Линеарно < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Држи < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Напредно < /translation> +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > Формат +пиксела: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > Кодек +: + +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Формат +: + +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > Распон +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > Читава +секвенца < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > Од +почетка +до +краја < /translation> +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Формат +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Видео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Аудио < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > Прекини < /translation> +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Видео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Аудио < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Кодек +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > Ширина +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > Висина +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > Оквирна +стопа: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Кодек +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Напредно < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Видео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Аудио < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > Жељена +величина +датотеке(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > Нема(прогресивно) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Линеарно < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Држи < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Линеарно < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Држи < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > Линеарно < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > Bezier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "obsolete" > Држи < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - - - - - Right - - - - - Bottom - - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Линеарно - - - - Bezier - Bezier - - - - Hold - Држи - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Напредно - - - - Pixel - - - - - Pixel Format: - Формат пиксела: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Кодек: - - - - Sample Rate: - - - - - Channel Layout: - - - - - Format: - Формат: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - - - - - Browse for exported file filename - - - - - Preset: - - - - - Range: - Распон: - - - - Entire Sequence - Читава секвенца - - - - In to Out - Од почетка до краја - - - - Format: - Формат: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - Видео - - - - Audio - Аудио - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - - - - - Cancel - Прекини - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - - Default - - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - Видео - - - - Audio - Аудио - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Кодек: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - - - - - Width: - Ширина: - - - - Height: - Висина: - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - - - - - Stretch - - - - - Crop - - - - - Frame Rate: - Оквирна стопа: - - - - Pixel Aspect Ratio: - - - - - Interlacing: - - - - - Quality: - - - - - Codec - - - - - Codec: - Кодек: - - - - Advanced - Напредно - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - - %1: Subtitle - - - - - Video - Видео - - - - Audio - Аудио - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - - - - - Tracks: - - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Жељена величина датотеке (MB): - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Нема (прогресивно) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Линеарно - - - - Hold - Држи - - - - Bezier - Bezier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Линеарно - - - - Bezier - Bezier - - - - Hold - Држи - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Линеарно - - - Bezier - Bezier - - - Hold - Држи - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - - - - - Save Project &As - - - - - (None) - - - - - &File - - - - - &New - - - - - &Open Project - - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/tr_TR.ts b/app/ts/tr_TR.ts index ced45151b..9bdde01a8 100644 --- a/app/ts/tr_TR.ts +++ b/app/ts/tr_TR.ts @@ -1,3833 +1,7169 @@ - - - + + + - AudioParams - - - %1 Hz - - - - - Mono - - - - - Stereo - Stereo - - - - 2.1 - 144p {2.1?} - - - - 5.1 - 144p {5.1?} - - - - 7.1 - 144p {7.1?} - - - - - Unknown (0x%1) - - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Mono < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Stereo < /source> + < translation +type = "unfinished" > Stereo < /translation> +< /message> +< message > + + 2.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 2.1 ? +} + +< /message> +< message > + + 5.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 5.1 ? +} + +< /message> +< message > + + 7.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 7.1 ? +} + +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - Renk - - - - Matrix - - - - - Text - Metin - - - - Font - Yazıtipi - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Bezier - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - %1 değiştir - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Parametreleri düzenle - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - Test Çubuğu - - - - Shape - - - - - Solid - - - - - Title - Başlık - - - - Tone - Ton - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 144p {1/%1?} - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Renk < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > Metin < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > Yazıtipi < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + + Change % 1 < /source> + < translation > % 1 +değiştir < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Parametreleri +düzenle < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > Test +Çubuğu < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > Başlık < /translation> +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > Ton < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 1 / % 1 ? +} + +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Önayar +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "obsolete" > Olive +doğrusal +olmayan +bir +video +editörüdür.Bu +yazılım +GNU +GPL +tarafından +ücretsiz +ve +korunmaktadır. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "obsolete" > Olive +Takımı, kullanıcılara +Olive +kaynak +kodunun +web +sitesinden +indirilmek +üzere +kullanılabilir +olduğunu +bildirmek +zorundadır. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > İşlem +Ara +... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio < /source> +< translation +type = "obsolete" > Ses < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > Süre < /translation> +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > Merkez < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Döngü +tekrarlayın < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > Renk < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Önayar: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive doğrusal olmayan bir video editörüdür. Bu yazılım GNU GPL tarafından ücretsiz ve korunmaktadır. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive Takımı, kullanıcılara Olive kaynak kodunun web sitesinden indirilmek üzere kullanılabilir olduğunu bildirmek zorundadır. - - - - olive::ActionSearch - - - Search for action... - İşlem Ara... - - - - olive::AudioInput - - Audio - Ses - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Bezier - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - Süre - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - Merkez - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - Döngü tekrarlayın - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Renk - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - Yeni Dosya - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - Save Project - Projeyi Kaydet - - - - - Error - Hata - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > Yeni +Dosya < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Save +Project < /source> +< translation +type = "obsolete" > Projeyi +Kaydet < /translation> +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > Hata < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > Proje +Aç < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > Alt < /translation> +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > Doğrusal < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Oldu < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Renk < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Gör < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Renk < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Opaklık < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Gelişmiş < /translation> +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > Piksel +Biçimi: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > İş +Parçacığı: +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > Aynı +oran: +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Biçim +: + +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > Dosyaadı +: + +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > Önayar +: + +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > Menzil +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > Tam +Sıra < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > Girişten +Çıkışa < /translation> +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Biçim +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Ses < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > İhraç < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > İptal < /translation> +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Varsayılan < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Ses < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Ad +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > Genel < /translation> +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > Genişlik +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > Yükseklik +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > Sığdır < /translation> +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > Piksel +en +boy +oranı: +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Kodek +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Gelişmiş < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Video < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Ses < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Ad +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > İzler +: + +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > Göz +at < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "obsolete" > Tüm +Dosyalar < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > Hedef +Dosya +Boyutu(MB) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Doğrusal < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Oldu < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Doğrusal < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Bezier < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Oldu < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > Doğrusal < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > Bezier < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "obsolete" > Oldu < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - Proje Aç - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - - - - - Right - - - - - Bottom - Alt - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Doğrusal - - - - Bezier - Bezier - - - - Hold - Oldu - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - Renk - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - Gör - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - Renk - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Opaklık - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Gelişmiş - - - - Pixel - - - - - Pixel Format: - Piksel Biçimi: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - İş Parçacığı: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Kodek: - - - - Sample Rate: - Aynı oran: - - - - Channel Layout: - - - - - Format: - Biçim: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - Dosyaadı: - - - - Browse for exported file filename - - - - - Preset: - Önayar: - - - - Range: - Menzil: - - - - Entire Sequence - Tam Sıra - - - - In to Out - Girişten Çıkışa - - - - Format: - Biçim: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - Video - - - - Audio - Ses - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - İhraç - - - - Cancel - İptal - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - Default - Varsayılan - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - Video - - - - Audio - Ses - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - Ad: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Kodek: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - Genel - - - - Width: - Genişlik: - - - - Height: - Yükseklik: - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - Sığdır - - - - Stretch - - - - - Crop - - - - - Frame Rate: - - - - - Pixel Aspect Ratio: - Piksel en boy oranı: - - - - Interlacing: - - - - - Quality: - - - - - Codec - - - - - Codec: - Kodek: - - - - Advanced - Gelişmiş - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - %1: Subtitle - - - - - Video - Video - - - - Audio - Ses - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - Ad: - - - - Tracks: - İzler: - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - Göz at - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Tüm Dosyalar - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Hedef Dosya Boyutu (MB): - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Doğrusal - - - - Hold - Oldu - - - - Bezier - Bezier - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Doğrusal - - - - Bezier - Bezier - - - - Hold - Oldu - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Doğrusal - - - Bezier - Bezier - - - Hold - Oldu - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - &Projeyi Kaydet - - - - Save Project &As - Projeyi Farklı &Kaydet - - - - (None) - - - - - &File - &Dosya - - - - &New - &Yeni - - - - &Open Project - &Proje Aç - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - &Dışa aktar... - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > & Projeyi +Kaydet < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > Projeyi +Farklı & Kaydet < /translation> +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > & Dosya < /translation> +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > & Yeni < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > & Proje +Aç < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > & Dışa +aktar +... + +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/uk_UK.ts b/app/ts/uk_UK.ts index 7609a3b87..b29842c2d 100644 --- a/app/ts/uk_UK.ts +++ b/app/ts/uk_UK.ts @@ -1,3837 +1,7182 @@ - - - + + + - AudioParams - - - %1 Hz - - - - - Mono - Моно - - - - Stereo - Стерео - - - - 2.1 - 144p {2.1?} - - - - 5.1 - 144p {5.1?} - - - - 7.1 - 144p {7.1?} - - - - - Unknown (0x%1) - - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Mono < /source> + < translation +type = "unfinished" > Моно < /translation> +< /message> +< message > + + Stereo < /source> + < translation +type = "unfinished" > Стерео < /translation> +< /message> +< message > + + 2.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 2.1 ? +} + +< /message> +< message > + + 5.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 5.1 ? +} + +< /message> +< message > + + 7.1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 7.1 ? +} + +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - - - - - Error saving settings - - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - - ImportTool - - - Don't ask me again - - - - - No Active Sequence - - - - - No sequence is currently open. Would you like to create one? - - - - - Automatically Detect Parameters From Footage - - - - - Set Parameters Manually - - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - - - - - Float - - - - - Rational - - - - - Boolean - - - - - Color - Колір - - - - Matrix - - - - - Text - Текст - - - - Font - Шрифт - - - - File - - - - - Texture - - - - - Samples - - - - - Vector 2D - - - - - Vector 3D - - - - - Vector 4D - - - - - Bezier - Безьє - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - - - - - %1... - - - - - OlivePluginInstance - - - Change %1 - Змінити %1 - - - - %1 (+%2) - %1 (+%2) - - - - Edit Parameters - Редагувати параметри - - - - PresetManager - - - Save Preset - - - - - Set preset name: - - - - - Invalid preset name - - - - - You must enter a preset name - - - - - Preset exists - - - - - A preset with this name already exists. Would you like to replace it? - - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - - - - - Invalid custom ratio - - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - - - - - Serializer - - - %1 on line %2 - - - - - Tool - - - Empty - - - - - Bars - Тестова таблиця - - - - Shape - - - - - Solid - - - - - Title - Титри - - - - Tone - Звуковой сигнал - - - - Subtitle - - - - - Unknown - - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - - - - - 1/%1 - 144p {1/%1?} - - - - 8-bit - - - - - 10-bit Packed - - - - - 16-bit Integer - - - - - Half-Float (16-bit) - - - - - Full-Float (32-bit) - - - - - Unknown (0x%1) - - - - - %1 FPS - - - - - Square Pixels (%1) - - - - - NTSC Standard (%1) - - - - - NTSC Widescreen (%1) - - - - - PAL Standard (%1) - - - - - PAL Widescreen (%1) - - - - - HD Anamorphic 1080 (%1) - - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - - - - - Show application version - - - - - Start in full-screen mode - - - - - Export only (No GUI) - - - - - Override language with file - - - - - qm-file - - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +% 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Error +saving +settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Колір < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > Текст < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > Шрифт < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безьє < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1... < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > Змінити % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> +< translation > % 1(+ % 2) < /translation> +< /message> +< message > + + Edit +Parameters < /source> +< translation > Редагувати +параметри < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +preset +name: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +exists < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. + +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Tool < /name> +< message > + + Empty < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > Тестова +таблиця < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Title < /source> + < translation +type = "unfinished" > Титри < /translation> +< /message> +< message > + + Tone < /source> + < translation +type = "unfinished" > Звуковой +сигнал < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 144 +p +{ + 1 / % 1 ? +} + +< /message> +< message > + + 8 - bit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +FPS < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation +type = "unfinished" > +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +application +version < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Start in full - screen +mode < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +only(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > +< /message> +< message > + + qm - file < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > Профіль +: + +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + About % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "obsolete" > Olive +є +нелінійним +редактором +відео.Це +програмне +забезпечення +є +вільним +і +захищено +ліцензією +GNU +GPL. < /translation> +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "obsolete" > Olive +Team +інформує +користувачів +про +те +що +джерельний +код +Olive +є +доступним +для +завантаження +на +сайті +проекту. < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > Знайти +дію +... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio < /source> +< translation +type = "obsolete" > Аудіо < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безьє < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation +type = "unfinished" > Тривалість < /translation> +< /message> +< message > + + Enabled < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + + Blur < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blurs +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gaussian < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radius < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > По +центру < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Clip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Buffer < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > Повторення +петлі < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > Колір < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input +: + +< translation +type = "unfinished" > +< /message> +< message > + + Color +Space: +< translation +type = "unfinished" > +< /message> +< message > + + Display +: + +< translation +type = "unfinished" > +< /message> +< message > + + View +: + +< translation +type = "unfinished" > +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Red < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Reference < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation +type = "unfinished" > +< /message> +< message > + + Import +footage +... + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - Профіль: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive є нелінійним редактором відео. Це програмне забезпечення є вільним і захищено ліцензією GNU GPL. - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive Team інформує користувачів про те що джерельний код Olive є доступним для завантаження на сайті проекту. - - - - olive::ActionSearch - - - Search for action... - Знайти дію... - - - - olive::AudioInput - - Audio - Аудіо - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - Безьє - - - - In: - - - - - Out: - - - - - olive::Block - - - Length - Тривалість - - - - Enabled - - - - - olive::BlurFilterNode - - - Blur - - - - - Blurs an image. - - - - - Input - - - - - Method - - - - - Box - - - - - Gaussian - - - - - Directional - - - - - Radial - - - - - Radius - - - - - Horizontal - - - - - Vertical - - - - - Repeat Edge Pixels - - - - - Direction - - - - - Center - По центру - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - - - - - A time-based node that represents a media source. - - - - - Buffer - - - - - Media In - - - - - Speed - - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - Повторення петлі - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - Колір - - - - olive::ColorSpaceChooser - - - Color Management - - - - - Input: - - - - - Color Space: - - - - - Display: - - - - - View: - - - - - Look: - - - - - (None) - - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - - - - - Input - - - - - Reference - - - - - Display - - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - - - - - Nothing to import - - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - - - - - Import footage... - - - - - Failed to import footage - - - - - Failed to find active Project panel - - - - - No Active Project - - - - - No project is currently open to set the properties for - - - - - Failed to create new folder - - - - - - Failed to find active project - - - - - New Folder - Нова тека - - - - Created New Folder - - - - - Failed to create new sequence - - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - - - - - You must specify a project file to export - - - - - Specified project does not exist - - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - - Failed to open startup file - - - - - The project "%1" doesn't exist. A new project will be started instead. - - - - - - Missing OpenTimelineIO Libraries - - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - - - - Save Project - Зберегти проект - - - - - Error - Помилка - - - - This Sequence is empty. There is nothing to export. - - - - - No valid sequence detected. + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +Active +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +new folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + New +Folder < /source> +< translation +type = "unfinished" > Нова +тека < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - - - - - OpenTimelineIO - - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. +as +such ? + < translation type = "unfinished" > +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation +type = "unfinished" > +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Save +Project < /source> +< translation +type = "obsolete" > Зберегти +проект < /translation> +< /message> +< message > + + + Error < /source> + < translation +type = "unfinished" > Помилка < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenTimelineIO < /source> + < translation +type = "unfinished" > +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Load +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Label +Node < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Set +node +label < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation type = "unfinished" > +< /message> +< message > + + Unsaved +Changes < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation type = "unfinished" > +< /message> +< message > + + Save < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +Project < /source> +< translation +type = "unfinished" > Відкрити +проект < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +Report: +< translation +type = "unfinished" > +< /message> +< message > + + Send +Error +Report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation +type = "unfinished" > +< /message> +< message > + + Upload +Failed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -To remedy this, please do one of the following: + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > Вгорі < /translation> +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > Внизу < /translation> +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + + Linear < /source> + < translation +type = "unfinished" > Лінійний < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безьє < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Стала < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Колір < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Disk +Cache: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +GB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation type = "unfinished" > + < /message> + < message > + + Disk +Cache +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > Вигляд < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > Колір < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > Непрозорість < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Remaining +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Додатково < /translation> +< /message> +< message > + + Pixel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pixel +Format: +< translation +type = "unfinished" > Формат +пікселів: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Performance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Threads +: + +< translation +type = "unfinished" > Потоки +: + +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation +type = "unfinished" > Кодек +: + +< /message> +< message > + + Sample +Rate: +< translation +type = "unfinished" > Частота +дискретизації: +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Формат +: + +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + H +.264 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ProRes < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP2 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PCM(Uncompressed) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation +type = "unfinished" > Ім & apos; +я +файла: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Preset +: + +< translation +type = "unfinished" > Профіль +: + +< /message> +< message > + + Range +: + +< translation +type = "unfinished" > Діапазон +: + +< /message> +< message > + + Entire +Sequence < /source> +< translation +type = "unfinished" > Уся +послідовність < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation +type = "unfinished" > Від +входу +до +виходу < /translation> +< /message> +< message > + + Format +: + +< translation +type = "unfinished" > Формат +: + +< /message> +< message > + + Export +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Відео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Аудіо < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Export < /source> + < translation +type = "unfinished" > Експортувати < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preview < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Invalid +parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > Типово < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + Invalid +filename < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Overwrite < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Invalid +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + + DNxHD < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Matroska +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation +type = "unfinished" > +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + OpenEXR < /source> + < translation +type = "unfinished" > +< /message> +< message > + + PNG < /source> + < translation +type = "unfinished" > +< /message> +< message > + + TIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + QuickTime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > Відео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Аудіо < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > Назва +: + +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Кодек +: + +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > + + General < /source> + < translation +type = "unfinished" > Загальні < /translation> +< /message> +< message > + + Width +: + +< translation +type = "unfinished" > Ширина +: + +< /message> +< message > + + Height +: + +< translation +type = "unfinished" > Висота +: + +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation +type = "unfinished" > +< /message> +< message > + + Scaling +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > Підігнати < /translation> +< /message> +< message > + + Stretch < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Frame +Rate: +< translation +type = "unfinished" > Частота +кадрів: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation +type = "unfinished" > Пропорції +сторін +пікселів: +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > Черезрядковість +: + +< /message> +< message > + + Quality +: + +< translation +type = "unfinished" > +< /message> +< message > + + Codec < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > Кодек +: + +< /message> +< message > + + Advanced < /source> + < translation +type = "unfinished" > Додатково < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 % + < translation +type = "unfinished" > +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< numerusform > +< numerusform > +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > Відео < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > Аудіо < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Name +: + +< translation +type = "unfinished" > Назва +: + +< /message> +< message > + + Tracks +: + +< translation +type = "unfinished" > Доріжок +: + +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + + Footage < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Filename < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Actions < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Browse < /source> + < translation +type = "unfinished" > Обрати < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "obsolete" > Усі +файли < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + + Gap < /source> + < translation +type = "unfinished" > +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation +type = "unfinished" > +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation +type = "unfinished" > Кінцевий +розмір +файла(Мб) +: + +< /message> +< message > + + Two - Pass < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +Bit +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Target +File +Size < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation +type = "unfinished" > +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation +type = "unfinished" > Ні(прогресивно) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + + In +: + +< translation +type = "unfinished" > +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Лінійний < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Стала < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безьє < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > Лінійний < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > Безьє < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > Стала < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > Лінійний < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > Безьє < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "obsolete" > Стала < /translation> +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - - - - - Load Project - - - - - Label Node - - - - - Set node label - - - - - Sequence %1 - - - - - Cannot open recent project - - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - - - - - Unsaved Changes - - - - - The project '%1' has unsaved changes. Would you like to save them? - - - - - Save - - - - - Don't Save - - - - - Failed to cache sequence - - - - - No active viewer found with this sequence. - - - - - Open Project - Відкрити проект - - - - olive::CornerPinDistortNode - - - Texture - - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - - - - - Crash Report: - - - - - Send Error Report - - - - - Don't Send - - - - - Waiting for crash report to be generated... - - - - - Upload Failed - - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: +OpenTimelineIO +Error: -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - - olive::CropDistortNode - - - Texture - - - - - Left - - - - - Top - Вгорі - - - - Right - - - - - Bottom - Внизу - - - - Feather - - - - - Crop - - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - - - - - Smoothly transition between two clips. - - - - - olive::CurvePanel - - - Curve Editor - - - - - olive::CurveView - - - Zoom to Fit - - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - Лінійний - - - - Bezier - Безьє - - - - Hold - Стала - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - - - - - Transition between clips by dipping to a color. - - - - - Color - Колір - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - - - - - Disk Cache Settings - - - - - Maximum Disk Cache: - - - - - %1 GB - - - - - - - Clear Disk Cache - - - - - Automatically clear disk cache on close - - - - - Are you sure you want to clear the disk cache in '%1'? - - - - - Disk Cache Cleared - - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - - - - - Disk Cache Partially Cleared - - - - - olive::DiskManager - - - - Disk Cache Error - - - - - Unable to set custom application disk cache. Using default instead. - - - - - Disk Cache - - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - - - - - Failed to open disk cache at "%1". Try a different folder. - - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - - - - - Display - - - - - View - Вигляд - - - - Direction - - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - - - - - Color - Колір - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - Непрозорість - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - - - - - Remaining: %1 - - - - - olive::ExportAdvancedVideoDialog - - - Advanced - Додатково - - - - Pixel - - - - - Pixel Format: - Формат пікселів: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - - - - - Threads: - Потоки: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - Кодек: - - - - Sample Rate: - Частота дискретизації: - - - - Channel Layout: - - - - - Format: - Формат: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - - - - - H.264 - - - - - H.264 RGB - - - - - H.265 - - - - - OpenEXR - - - - - PNG - - - - - ProRes - - - - - Cineform - - - - - TIFF - - - - - MP2 - - - - - MP3 - - - - - AAC - - - - - PCM (Uncompressed) - - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportDialog - - - Filename: - Ім'я файла: - - - - Browse for exported file filename - - - - - Preset: - Профіль: - - - - Range: - Діапазон: - - - - Entire Sequence - Уся послідовність - - - - In to Out - Від входу до виходу - - - - Format: - Формат: - - - - Export Video - - - - - Export Audio - - - - - Export Subtitles - - - - - Video - Відео - - - - Audio - Аудіо - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - Експортувати - - - - Cancel - - - - - Preview - - - - - Invalid parameters - - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - - - Default - Типово - - - - Last Used - - - - - - - Invalid filename - - - - - The filename must contain the extension "%1". Would you like to append it automatically? - - - - - Failed to create output directory - - - - - Confirm Overwrite - - - - - The file "%1" already exists. Do you want to overwrite it? - - - - - Invalid Parameters - - - - - Width and height must be multiples of 2. - - - - - olive::ExportFormat - - - DNxHD - - - - - Matroska Video - - - - - MPEG-4 Video - - - - - MPEG-4 Audio - - - - - OpenEXR - - - - - PNG - - - - - TIFF - - - - - QuickTime - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - - - - - olive::ExportFormatComboBox - - - Video - Відео - - - - Audio - Аудіо - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - Назва: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - Кодек: - - - - olive::ExportTask - - - Exporting "%1" - - - - - Failed to create encoder - - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - - - - - olive::ExportVideoTab - - - General - Загальні - - - - Width: - Ширина: - - - - Height: - Висота: - - - - Maintain Aspect Ratio: - - - - - Scaling Method: - - - - - Fit - Підігнати - - - - Stretch - - - - - Crop - - - - - Frame Rate: - Частота кадрів: - - - - Pixel Aspect Ratio: - Пропорції сторін пікселів: - - - - Interlacing: - Черезрядковість: - - - - Quality: - - - - - Codec - - - - - Codec: - Кодек: - - - - Advanced - Додатково - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - - - - - Horizontal - - - - - Vertical - - - - - olive::FloatSlider - - - %1 dB - - - - - %1% - - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - - - - - %1: Image - %2x%3 - - - - - %1: Video - %2x%3 - - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - - - %1: Subtitle - - - - - Video - Відео - - - - Audio - Аудіо - - - - Subtitle - - - - - Unknown - - - - - Filename: %1 - - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - - - - - Name: - Назва: - - - - Tracks: - Доріжок: - - - - Subtitles - - - - - Unknown - - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - - - - - Filename - - - - - Actions - - - - - Browse - Обрати - - - - Relink Footage - - - - - Relink "%1" - - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - Усі файли - - - - olive::FootageViewerPanel - - - Footage Viewer - - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - - - - - Custom (%1) - - - - - olive::GapBlock - - - Gap - - - - - A time-based node that represents an empty space. - - - - - olive::GeneratorWithMerge - - - Base - - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - - - - - Maximum Bit Rate (Mbps): - - - - - Two-Pass - - - - - olive::H264FileSizeSection - - - Target File Size (MB): - Кінцевий розмір файла (Мб): - - - - Two-Pass - - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - - - - - Constant Rate Factor - - - - - Target Bit Rate - - - - - Target File Size - - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - Ні (прогресивно) - - - - Top-Field First - - - - - Bottom-Field First - - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - - - - - In: - - - - - Out: - - - - - Linear - Лінійний - - - - Hold - Стала - - - - Bezier - Безьє - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - Лінійний - - - - Bezier - Безьє - - - - Hold - Стала - - - - P&roperties - - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - Лінійний - - - Bezier - Безьє - - - Hold - Стала - - - - olive::LoadOTIOTask - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - - - - - Sequence %1 - - - - - Failed to load clip - - - - - olive::MainMenu - - - &Save '%1' - - - - - Save '%1' &As - - - - - &Save Project - &Зберегти проект - - - - Save Project &As - Зберегти проект &як - - - - (None) - - - - - &File - &Файл - - - - &New - &Новий - - - - &Open Project - &Відкрити проект - - - - Open &Recent - - - - - &Clear Recent List - - - - - &Import... - &Імпортувати... - - - - &Export - - - - - &Media... - - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - - - - - K - - - - - L - - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Failed +to +load +clip < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Save +Project < /source> +< translation +type = "unfinished" > & Зберегти +проект < /translation> +< /message> +< message > + + Save +Project & As < /source> +< translation +type = "unfinished" > Зберегти +проект & як < /translation> +< /message> +< message > + + (None) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & File < /source> + < translation +type = "unfinished" > & Файл < /translation> +< /message> +< message > + + & New < /source> + < translation +type = "unfinished" > & Новий < /translation> +< /message> +< message > + + & Open +Project < /source> +< translation +type = "unfinished" > & Відкрити +проект < /translation> +< /message> +< message > + + Open & Recent < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Clear +Recent +List < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Import +... + +< translation +type = "unfinished" > & Імпортувати +... + +< /message> +< message > + + & Export < /source> + < translation +type = "unfinished" > +< /message> +< message > + + & Media +... + +< translation +type = "unfinished" > +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ` diff --git a/app/ts/zh_CN.ts b/app/ts/zh_CN.ts index efa8b1fad..b4a610412 100644 --- a/app/ts/zh_CN.ts +++ b/app/ts/zh_CN.ts @@ -1,4515 +1,8016 @@ - - - + + + - AudioParams - - - %1 Hz - %1 Hz - - - - Mono - 单声道 - - - - Stereo - 立体声 - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - 未知 (0x%1) - - - - Unsigned 8-bit (Packed) - 无符号8位(压缩) - - - - Signed 16-bit (Packed) - 有符号16位(压缩) - - - - Signed 32-bit (Packed) - 有符号32位(压缩) - - - - Signed 64-bit (Packed) - 有符号64位(压缩) - - - - Float 32-bit (Packed) - 浮点32位(压缩) - - - - Float 64-bit (Packed) - 浮点64位(压缩) - - - - Unsigned 8-bit (Planar) - 无符号8位(平面) - - - - Signed 16-bit (Planar) - 有符号16位(平面) - - - - Signed 32-bit (Planar) - 有符号32位(平面) - - - - Signed 64-bit (Planar) - 有符号64位(平面) - - - - Float 32-bit (Planar) - 浮点32位(平面) - - - - Float 64-bit (Planar) - 浮点64位(平面) - - - - Config - - - Error loading settings - 加载设置时出错 - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +Hz < /translation> +< /message> +< message > + +Mono < /source> +< translation > 单声道 < /translation> +< /message> +< message > + +Stereo < /source> +< translation > 立体声 < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > 未知(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation > 无符号8位(压缩) +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation > 有符号16位(压缩) +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation > 有符号32位(压缩) +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation > 有符号64位(压缩) +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation > 浮点32位(压缩) +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation > 浮点64位(压缩) +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation > 无符号8位(平面) +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation > 有符号16位(平面) +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation > 有符号32位(平面) +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation > 有符号64位(平面) +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation > 浮点32位(平面) +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation > 浮点64位(平面) +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > 加载设置时出错 < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - 无法加载应用程序设置,此会话将使用默认设置。 +% 1 < /source> +< translation > 无法加载应用程序设置,此会话将使用默认设置。 -%1 - - - - Error saving settings - 保存设置时出错 - - - Failed to save application settings. The application may lack write permissions to this location. - 无法保存应用程序设置。应用程序可能没有对此位置的写入权限。 - - - - Failed to save application settings. The application may lack write permissions for this location. - 未能保存应用程序设置。应用程序可能缺少此位置的写入权限. - - - - Footage - - %1 FPS - %1 FPS - - - %1 Hz - %1 Hz - - - Filename: %1 - 文件名:%1 - - - This footage is not valid for use - 此素材不能用 - - - - ImportTool - - - Don't ask me again - 不再询问 - - - - No Active Sequence - 没有活动序列 - - - - No sequence is currently open. Would you like to create one? - 没有打开的序列。您要创建一个序列吗? - - - - Automatically Detect Parameters From Footage - 自动检测素材参数 - - - - Set Parameters Manually - 手动设置参数 - - - - MoveItemCommand - - Move Item - 移动项 - - - - NodeCopyPasteWidget - - Error pasting nodes - 粘贴节点时出错 - - - Failed to paste nodes: %1 - 无法粘贴节点:%1 - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - 整数 - - - - Float - 浮点数 - - - - Rational - 有理数 - - - - Boolean - 布尔值 - - - - Color - 颜色 - - - - Matrix - 矩阵 - - - - Text - 文字 - - - - Font - 字体 - - - - File - 文件 - - - - Texture - 纹理 - - - - Samples - 采样 - - - - Vector 2D - 矢量 2D - - - - Vector 3D - 矢量 3D - - - - Vector 4D - 矢量 4D - - - - Bezier - 贝塞尔曲线 - - - - Video Parameters - 视频参数 - - - - Audio Parameters - 音频参数 - - - - Subtitle Parameters - 字幕参数 - - - - Binary - - - - - Unknown - 未知 - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - %1 [%2] :: %3 - %4 - - - - NodeViewItem - - - %1... - %1... - - - - Output - 输出 - - - - OlivePluginInstance - - - Change %1 - 更改 %1 - - - - %1 (+%2) - %1(+%2) - - - - Edit Parameters - 编辑参数 - - - - PresetManager - - - Save Preset - 保存预设 - - - - Set preset name: - 设置预设名称: - - - - Invalid preset name - 无效的预设名称 - - - - You must enter a preset name - 您必须输入预设名称 - - - - Preset exists - 预设存在 - - - - A preset with this name already exists. Would you like to replace it? - 存在具有此名称的预设。您要替换它吗? - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - 输入自定义比率 (例如“4:3”、“16/9”,等): - - - - Invalid custom ratio - 无效的自定义比率 - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - 无法将“%1”解析为宽高比,请使用‘:’或‘/’分隔符组成的有理分式。 - - - - RenameItemCommand - - Rename Item - 重命名项 - - - - Sequence - - %1 FPS - %1 FPS - - - - Serializer - - - %1 on line %2 - %1 在线 %2 - - - - Stream - - %1: Audio - %2 Channels, %3Hz - %1:音频 - %2 声道,%3Hz - - - %1: Unknown - %1:未知 - - - %1: Image - %2x%3 - %1:图像 - %2x%3 - - - %1: Video - %2x%3 - %1:视频 - %2x%3 - - - - TimelineViewBlockItem - - %1 +% +1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > 保存设置时出错 < /translation> +< /message> +< message > +Failed +to +save +application +settings.The +application +may +lack +write +permissions +to +this +location. < /source> +< translation +type = "obsolete" > 无法保存应用程序设置。应用程序可能没有对此位置的写入权限。 +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation > 未能保存应用程序设置。应用程序可能缺少此位置的写入权限. < /translation> +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +FPS < /source> +< translation +type = "obsolete" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "obsolete" > % 1 +Hz < /translation> +< /message> +< message > +Filename +: % +1 < /source> +< translation +type = "obsolete" > 文件名:% +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "obsolete" > 此素材不能用 < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > 不再询问 < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation > 没有活动序列 < /translation> +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation > 没有打开的序列。您要创建一个序列吗? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > 自动检测素材参数 < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > 手动设置参数 < /translation> +< /message> +< /context> +< context > +MoveItemCommand < /name> +< message > +Move +Item < /source> +< translation +type = "obsolete" > 移动项 < /translation> + < /message> + < /context> + < context > + NodeCopyPasteWidget < /name> + < message > + Error +pasting +nodes < /source> +< translation +type = "obsolete" > 粘贴节点时出错 < /translation> + < /message> + < message > + Failed +to +paste +nodes: % +1 < /source> +< translation +type = "obsolete" > 无法粘贴节点:% +1 < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > 无 < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + +None < /source> +< translation > 无 < /translation> +< /message> +< message > + +Integer < /source> +< translation > 整数 < /translation> +< /message> +< message > + +Float < /source> +< translation > 浮点数 < /translation> +< /message> +< message > + +Rational < /source> +< translation > 有理数 < /translation> +< /message> +< message > + +Boolean < /source> +< translation > 布尔值 < /translation> +< /message> +< message > + +Color < /source> +< translation > 颜色 < /translation> +< /message> +< message > + +Matrix < /source> +< translation > 矩阵 < /translation> +< /message> +< message > + +Text < /source> +< translation > 文字 < /translation> +< /message> +< message > + +Font < /source> +< translation > 字体 < /translation> +< /message> +< message > + +File < /source> +< translation > 文件 < /translation> +< /message> +< message > + +Texture < /source> +< translation > 纹理 < /translation> +< /message> +< message > + +Samples < /source> +< translation > 采样 < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation > 矢量 +2 +D < /translation> +< /message> +< message > + + Vector +3 +D < /source> +< translation > 矢量 +3 +D < /translation> +< /message> +< message > + + Vector +4 +D < /source> +< translation > 矢量 +4 +D < /translation> +< /message> +< message > + +Bezier < /source> +< translation > 贝塞尔曲线 < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation > 视频参数 < /translation> +< /message> +< message > + + Audio +Parameters < /source> +< translation > 音频参数 < /translation> +< /message> +< message > + + Subtitle +Parameters < /source> +< translation > 字幕参数 < /translation> +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation > % 1 [ % 2 +] +:: % 3 - % 4 < /translation> +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + % 1... < /source> +< translation > % 1... < /translation> +< /message> +< message > + +Output < /source> +< translation > 输出 < /translation> +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > 更改 % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> + < translation > % 1(+ % 2) +< /message> +< message > + + Edit +Parameters < /source> +< translation > 编辑参数 < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation > 保存预设 < /translation> +< /message> +< message > + + Set +preset +name: +< translation > 设置预设名称: +< /message> +< message > + + Invalid +preset +name < /source> +< translation > 无效的预设名称 < /translation> +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation > 您必须输入预设名称 < /translation> +< /message> +< message > + + Preset +exists < /source> +< translation > 预设存在 < /translation> +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation > 存在具有此名称的预设。您要替换它吗? +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation > 输入自定义比率(例如“4 +: +3”、“16 / 9”,等 +): +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation > 无效的自定义比率 < /translation> +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. +无法将“% +1”解析为宽高比,请使用‘:’或‘/’分隔符组成的有理分式。 + +< /context> +< context > +RenameItemCommand < /name> +< message > +Rename +Item < /source> +< translation +type = "obsolete" > 重命名项 < /translation> + < /message> + < /context> + < context > + Sequence < /name> + < message > + % 1 +FPS < /source> +< translation +type = "obsolete" > % 1 +FPS < /translation> +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation > % 1 +在线 % 2 < /translation> +< /message> +< /context> +< context > +Stream < /name> +< message > + % 1 +: +Audio - % 2 +Channels, +% +3 +Hz < /source> +< translation +type = "obsolete" > % 1:音频 - % 2 +声道,% +3 +Hz < /translation> +< /message> +< message > + % 1 +: +Unknown < /source> +< translation +type = "obsolete" > % 1:未知 < /translation> +< /message> +< message > + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "obsolete" > % 1:图像 - % 2 +x % 3 < /translation> +< /message> +< message > + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "obsolete" > % 1:视频 - % 2 +x % 3 < /translation> +< /message> +< /context> +< context > +TimelineViewBlockItem < /name> +< message > + % 1 -In: %2 -Out: %3 -Length: %4 - %1 +In: % +2 +Out: % +3 +Length: % +4 < /source> +< translation +type = "obsolete" > % 1 -入: %2 -出: %3 -长度: %4 - - - - Tool - - - Empty - 空白 - - - - Bars - 彩条 - - - - Solid - 纯色 - - - - Title - 标题 - - - - Tone - 音调 - - - - Unknown - 未知 - - - - Shape - 形状 - - - - Subtitle - 字幕 - - - - UndoStack - - - Undo %1 - 撤销 %1 - - - - Redo %1 - 重做 %1 - - - - VideoParams - - - 8-bit - 8 位 - - - - 10-bit Packed - - - - - 16-bit Integer - 16 位整型 - - - - Half-Float (16-bit) - 半精度浮点型(16位) - - - - Full-Float (32-bit) - 全精度浮点型(32位) - - - - Unknown (0x%1) - 未知 (0x%1) - - - - %1 FPS - %1 FPS - - - - Square Pixels (%1) - 正方形像素 (%1) - - - - NTSC Standard (%1) - NTSC 标准 (%1) - - - - NTSC Widescreen (%1) - NTSC 宽屏 (%1) - - - - PAL Standard (%1) - PAL 标准 (%1) - - - - PAL Widescreen (%1) - PAL 宽屏 (%1) - - - - HD Anamorphic 1080 (%1) - HD 变形 1080 (%1) - - - - Full - 完全 - - - - 1/%1 - 1/%1 - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - 显示此帮助文本 - - - - Show application version - 显示应用程序版本 - - - - Start in full-screen mode - 以全屏模式启动 - - - - Export only (No GUI) - 仅导出 (无 GUI) - - - - Override language with file - 使用文件覆盖语言 - - - - qm-file - qm文件 - - - - Decompress project file (No GUI) - - - - - Project to open on startup - 在启动时打开的项目 - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. - -Please update your graphics driver to the latest version and try again. - -Current driver information: %1 %2 %3 - - - - - Launch with debug console - 使用调试控制台启动 - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Olive. - -Please update your graphics driver to the latest version and try again. - -Current driver information: %1 %2 %3 - 计算机的图形驱动程序似乎不支持帧缓冲区。这很可能意味着您的图形驱动程序不是最新的,或者您的图形卡太旧,无法运行Olive。 +入: % +2 +出: % +3 +长度: % +4 < /translation> +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > 空白 < /translation> +< /message> +< message > + +Bars < /source> +< translation > 彩条 < /translation> +< /message> +< message > + +Solid < /source> +< translation > 纯色 < /translation> +< /message> +< message > + +Title < /source> +< translation > 标题 < /translation> +< /message> +< message > + +Tone < /source> +< translation > 音调 < /translation> +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< message > + +Shape < /source> +< translation > 形状 < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > 字幕 < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + +Undo % 1 < /source> +< translation > 撤销 % 1 < /translation> +< /message> +< message > + +Redo % 1 < /source> +< translation > 重做 % 1 < /translation> +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + 8 - bit < /source> + < translation > 8 +位 < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation > 16 +位整型 < /translation> +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation > 半精度浮点型(16 +位) +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation > 全精度浮点型(32 +位) +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > 未知(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > % 1 +FPS < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation > 正方形像素( % 1 +) + +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > NTSC +标准( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > NTSC +宽屏( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > PAL +标准( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > PAL +宽屏( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation > HD +变形 +1080( % 1 +) + +< /message> +< message > + +Full < /source> +< translation > 完全 < /translation> +< /message> +< message > + +1 / % 1 < /source> +< translation > 1 / % 1 < /translation> +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > 显示此帮助文本 < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > 显示应用程序版本 < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > 以全屏模式启动 < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > 仅导出(无 +GUI +) + +< /message> +< message > + + Override +language +with file < /source> +< translation > 使用文件覆盖语言 < /translation> +< /message> +< message > + +qm - file < /source> +< translation > qm文件 < /translation> +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > 在启动时打开的项目 < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation > 使用调试控制台启动 < /translation> +< /message> +< message > +Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Olive.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "vanished" > 计算机的图形驱动程序似乎不支持帧缓冲区。这很可能意味着您的图形驱动程序不是最新的,或者您的图形卡太旧,无法运行Olive。 请将图形驱动程序更新到最新版本,然后重试。 -当前驱动程序信息:%1 %2 %3 - - - - olive - - Center: - 居中: - - - Bezier - 贝塞尔曲线 - - - In: - 入: - - - Out: - 出: - - - - olive::AV1Section - - - Preset: - 预设: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - 压缩方式: - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - 恒定速率因子(CRF) - - - - olive::AboutDialog - - - About %1 - 关于 %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive 是免费的非线性视频编辑器。此应用程序基于 GNU 通用公共许可证(GNU GPL)条款发布。 - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive 团队有义务告知用户可以从官网下载 Olive 的源码。翻译者已尝试用通俗易明的方式进行翻译,希望大家使用愉快。请支持自由开源软件,谢谢。 - - - - Welcome to %1 - 欢迎来到 %1 - - - Olive is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - Olive是免费开源非线性视频编辑器.此软件在GNU GPL3下获得许可。 - - - <b>Olive relies on support from the community to continue its development.</b> - <b>Olive的发展依靠社区的支持</b> - - - Olive wouldn't be possible without the support of gracious donations from the following people. - 如果没有以下人士的慷慨捐赠,Olive不可能发展。 - - - <html>%1 If you like this project, please consider making a <a href='https://olivevideoeditor.org/donate.php'>one-time donation</a> or <a href='https://www.patreon.com/olivevideoeditor'>pledging monthly</a> to support its development.</html> - <html>%1如果您喜欢这个项目,请考虑给予<a href='https://olivevideoeditor.org/donate.php'>一次捐赠</a>或<a href='https://www.patreon.com/olivevideoeditor'>成为会员</a>支持其发展</html> - - - - Don't show this message again - 不再显示信息 - - - - olive::ActionSearch - - - Search for action... - 操作搜索... - - - - olive::AudioInput - - Audio Input - 音频输入 - - - Audio - 音频 - - - Import an audio footage stream. - 导入音频素材流。 - - - - olive::AudioManager - - - No output device is set - 未设置输出设备 - - - - olive::AudioMonitorPanel - - - Audio Monitor - 音频监视器 - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - 自动恢复 - - - - Load - 加载 - - - - olive::BezierWidget - - - Center: - 居中: - - - - Bezier - 贝塞尔曲线 - - - - In: - 入: - - - - Out: - 出: - - - - olive::Block - - - Length - 长度 - - - Media In - 媒体输入 - - - - Enabled - 已启用 - - - Speed - 速度 - - - - olive::BlurFilterNode - - - Blur - 模糊 - - - - Blurs an image. - 使图像变模糊。 - - - - Input - 输入 - - - - Method - 方法 - - - - Box - 盒式 - - - - Gaussian - 高斯 - - - - Radius - 半径 - - - - Horizontal - 水平 - - - - Vertical - 垂直 - - - - Repeat Edge Pixels - 重复边缘像素 - - - - Directional - 方向 - - - - Radial - 圆角 - - - - Direction - 方向 - - - - Center - 居中 - - - - olive::ChromaKeyNode - - - Chroma Key - 色度键 - - - - A simple color key based on the distance from the chroma of a selected color. - 基于与选定颜色的色度的距离的简单颜色键。 - - - - Input - 输入 - - - - Garbage Matte - 垃圾遮片 - - - - Core Matte - 核心遮片 - - - - Key Color - 基本色调 - - - - Shadows - 阴影 - - - - Highlights - 高光 - - - - Upper Tolerance - 上限公差 - - - - Lower Tolerance - 下限公差 - - - - Invert Mask - 反转遮罩 - - - - Show Mask Only - 只显示遮罩 - - - - olive::CineformSection - - - Quality: - 质量: - - - - Film Scan 3+ - 胶片扫描3+ - - - - Film Scan 3 - 胶片扫描2+ - - - - - Film Scan 2+ - 胶片扫描2+ - - - - Film Scan 2 - 胶片扫描2 - - - - Film Scan 1.5 - 胶片扫描1.5 - - - - Film Scan 1+ - 胶片扫描1+ - - - - Film Scan 1 - 胶片扫描1 - - - - High+ - 高+ - - - - High - - - - - Medium+ - 中等+ - - - - Medium - 中等+ - - - - Low+ - 低+ - - - - Low - - - - - olive::ClipBlock - - - Clip - 片段 - - - - A time-based node that represents a media source. - 基于时间的节点,表示一段媒体源。 - - - - Buffer - 缓冲区 - - - - Video Clip - 视频片段 - - - - Audio Clip - 音频片段 - - - - Media In - 媒体输入 - - - - Speed - 速度 - - - - Reverse - 颠倒 - - - - Maintain Audio Pitch - 保持音频音调 - - - - - Loop - 循环 - - - - None - - - - - Clamp - 夹钳 - - - - olive::ColorCoding - - - Red - 红色 - - - - Maroon - 紫褐色 - - - - Orange - 橙色 - - - - Brown - 棕色 - - - - Yellow - 黄色 - - - Olive - 橄榄 - - - - Oak - - - - - Lime - 石灰 - - - - Green - 绿色 - - - - Cyan - 青色 - - - - Teal - - - - - Blue - 蓝色 - - - - Navy - 深蓝色 - - - - Pink - 粉色 - - - - Purple - 紫色 - - - - Silver - 银色 - - - - Gray - 灰色 - - - - olive::ColorDialog - - - Select Color - 选择颜色 - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - 色差键 - - - - A simple color key based on the distance of one color from other colors. - 基于一种颜色与其他颜色的距离的简单颜色键. - - - - Input - 输入 - - - - Garbage Matte - 垃圾遮片 - - - - Core Matte - 核心遮片 - - - - Key Color - 基本色调 - - - - Green - 绿色 - - - - Blue - 蓝色 - - - - Shadows - 阴影 - - - - Highlights - 高光 - - - - Show Mask Only - 只显示遮罩 - - - - olive::ColorLabelMenu - - - Color - 颜色 - - - - olive::ColorManager - - Configuration - 配置 - - - Default Input - 默认输入 - - - Reference Space - 参考空间 - - - Scene Linear - 场景线性 - - - Compositing Log - 合成日志 - - - (built-in) - 内置 - - - Color Manager - 色彩管理 - - - Color management configuration for project. - 项目色彩配置. - - - - olive::ColorSpaceChooser - - - Color Management - 颜色管理 - - - - Input: - 输入: - - - - Color Space: - 颜色空间: - - - - Display: - 显示: - - - - View: - 视图: - - - - Look: - 风格: - - - - (None) - (无) - - - - olive::ColorSwatchChooser - - - Save Color Here - 在这保存颜色 - - - - Reset To Default - 恢复默认 - - - - olive::ColorValuesTab - - - Red - 红色 - - - - Green - 绿色 - - - - Blue - 蓝色 - - - - Use legacy (8-bit) values - 使用传统(8位)值 - - - - Web - 网络 - - - - (Invalid) - 无效的 - - - - olive::ColorValuesWidget - - - Preview - 预览 - - - - Input - 输入 - - - - Reference - 参考 - - - - Display - 显示 - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - 确认音频 %1:%2 - - - - Failed to open decoder for audio conform - 无法打开解码器以符合音频 - - - - olive::Core - - - Import error - 导入出错 - - - - Nothing to import - 没有可导出的内容 - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - 正在导入... - - - - Import footage... - 导入素材... - - - - Failed to import footage - 无法导入素材 - - - - Failed to find active Project panel - 找不到活动项目面板 - - - - No Active Project - 没有活动项目 - - - - No project is currently open to set the properties for - 当前没有用于设置属性的已打开项目 - - - - Failed to create new folder - 无法创建新文件夹 - - - - - Failed to find active project - 找不到活动项目 - - - - New Folder - 新建文件夹 - - - - Created New Folder - - - - - Failed to create new sequence - 无法创建新序列 - - - - Created New Sequence - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - 检测到可能的图像序列 - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - 文件“%1”可能是图像序列的一部分。您要如此导入它吗? - - - - You must specify a project file to export - 您必须指定要导出的项目文件 - - - - Specified project does not exist - 指定的项目不存在 - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - Project contains no sequences, nothing to export - 项目不包含任何序列,没有可导出的内容 - - - This project has multiple sequences. Which do you wish to export? - 此项目有多个序列。您要导出哪一个? - - - Enter number (or %1 to cancel): - 输入数字 (或%1来取消): - - - Invalid sequence number - 无效序列数字 - - - Export succeeded - 导出成功 - - - Export failed: %1 - 导出失败:%1 - - - Project failed to load: %1 - 项目无法加载:%1 - - - - Failed to open startup file - 无法打开启动文件 - - - - The project "%1" doesn't exist. A new project will be started instead. - 项目“%1”不存在。将打开一个新建项目。 - - - - - Missing OpenTimelineIO Libraries - 缺失 OpenTimelineIO 库 - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - 本构建未使用 OpenTimelineIO 编译,所以无法打开 OpenTimelineIO 文件。 - - - Save Project - 保存项目 - - - - - Error - 错误 - - - - This Sequence is empty. There is nothing to export. - 此序列是空的。没有可导出的内容。 - - - - No valid sequence detected. +当前驱动程序信息:% +1 % 2 % 3 < /translation> +< /message> +< /context> +< context > +olive < /name> +< message > +Center +: + +< translation +type = "vanished" > 居中 +: + +< /message> +< message > +Bezier < /source> +< translation +type = "vanished" > 贝塞尔曲线 < /translation> + < /message> + < message > + In +: + +< translation +type = "vanished" > 入: +< /message> +< message > +Out +: + +< translation +type = "vanished" > 出: +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > 预设: +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > 压缩方式: +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > 恒定速率因子(CRF) +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + +About % 1 < /source> +< translation > 关于 % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "obsolete" > Olive +是免费的非线性视频编辑器。此应用程序基于 +GNU +通用公共许可证(GNU +GPL)条款发布。 +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "obsolete" > Olive +团队有义务告知用户可以从官网下载 +Olive +的源码。翻译者已尝试用通俗易明的方式进行翻译,希望大家使用愉快。请支持自由开源软件,谢谢。 +< /message> +< message > + + Welcome +to % 1 < /source> +< translation > 欢迎来到 % 1 < /translation> +< /message> +< message > +Olive +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "vanished" > Olive是免费开源非线性视频编辑器.此软件在GNU +GPL3下获得许可。 +< /message> +< message > +<b>Olive +relies +on +support +from +the +community +to +continue its +development. < /b> + <b>Olive的发展依靠社区的支持 < /b> + +< message > +Olive +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "vanished" > 如果没有以下人士的慷慨捐赠,Olive不可能发展。 +< /message> +< message > +<html> % 1 +If +you +like +this +project, please +consider +making +a < a +href = +& +apos; +https://olivevideoeditor.org/donate.php'>one-time donation</a> or <a href='https://www.patreon.com/olivevideoeditor'>pledging monthly</a> to support its development.</html> + <html> % 1 +如果您喜欢这个项目,请考虑给予 < a +href = +& +apos; +https://olivevideoeditor.org/donate.php'>一次捐赠</a>或<a href='https://www.patreon.com/olivevideoeditor'>成为会员</a>支持其发展</html> + + < message > + + Don & apos; +t +show +this +message +again < /source> +< translation > 不再显示信息 < /translation> +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation > 操作搜索 +... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio +Input < /source> +< translation +type = "obsolete" > 音频输入 < /translation> + < /message> + < message > + Audio < /source> + < translation +type = "obsolete" > 音频 < /translation> + < /message> + < message > + Import +an +audio +footage +stream. < /source> +< translation +type = "obsolete" > 导入音频素材流。 +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation > 未设置输出设备 < /translation> +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation > 音频监视器 < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + +Auto - Recovery < /source> +< translation > 自动恢复 < /translation> +< /message> +< message > + +Load < /source> +< translation > 加载 < /translation> +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > 居中 +: + +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > 贝塞尔曲线 < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > 入: +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > 出: +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation > 长度 < /translation> + < /message> + < message > + Media +In < /source> +< translation +type = "obsolete" > 媒体输入 < /translation> +< /message> +< message > + + Enabled < /source> + < translation > 已启用 < /translation> + < /message> + < message > + Speed < /source> + < translation +type = "obsolete" > 速度 < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > 模糊 < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > 使图像变模糊。 +< /message> +< message > + +Input < /source> +< translation > 输入 < /translation> +< /message> +< message > + +Method < /source> +< translation > 方法 < /translation> +< /message> +< message > + +Box < /source> +< translation > 盒式 < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > 高斯 < /translation> +< /message> +< message > + +Radius < /source> +< translation > 半径 < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > 水平 < /translation> +< /message> +< message > + +Vertical < /source> +< translation > 垂直 < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation > 重复边缘像素 < /translation> +< /message> +< message > + +Directional < /source> +< translation > 方向 < /translation> +< /message> +< message > + +Radial < /source> +< translation > 圆角 < /translation> +< /message> +< message > + +Direction < /source> +< translation > 方向 < /translation> +< /message> +< message > + +Center < /source> +< translation > 居中 < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation > 色度键 < /translation> +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation > 基于与选定颜色的色度的距离的简单颜色键。 +< /message> +< message > + +Input < /source> +< translation > 输入 < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation > 垃圾遮片 < /translation> +< /message> +< message > + + Core +Matte < /source> +< translation > 核心遮片 < /translation> +< /message> +< message > + + Key +Color < /source> +< translation > 基本色调 < /translation> +< /message> +< message > + +Shadows < /source> +< translation > 阴影 < /translation> +< /message> +< message > + +Highlights < /source> +< translation > 高光 < /translation> +< /message> +< message > + + Upper +Tolerance < /source> +< translation > 上限公差 < /translation> +< /message> +< message > + + Lower +Tolerance < /source> +< translation > 下限公差 < /translation> +< /message> +< message > + + Invert +Mask < /source> +< translation > 反转遮罩 < /translation> +< /message> +< message > + + Show +Mask +Only < /source> +< translation > 只显示遮罩 < /translation> +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation > 质量: +< /message> +< message > + + Film +Scan +3 + +< translation > 胶片扫描3 + +< /message> +< message > + + Film +Scan +3 < /source> +< translatorcomment > 胶片扫描2 + +< translation > +< /message> +< message > + + Film +Scan +2 + +< translation > 胶片扫描2 + +< /message> +< message > + + Film +Scan +2 < /source> +< translation > 胶片扫描2 < /translation> +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation > 胶片扫描1 +.5 < /translation> +< /message> +< message > + + Film +Scan +1 + +< translation > 胶片扫描1 + +< /message> +< message > + + Film +Scan +1 < /source> +< translation > 胶片扫描1 < /translation> +< /message> +< message > + +High + +< translation > 高 + +< /message> +< message > + +High < /source> +< translation > 高 < /translation> +< /message> +< message > + +Medium + +< translation > 中等 + +< /message> +< message > + +Medium < /source> +< translation > 中等 + +< /message> +< message > + +Low + +< translation > 低 + +< /message> +< message > + +Low < /source> +< translation > 低 < /translation> +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + +Clip < /source> +< translation > 片段 < /translation> +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation > 基于时间的节点,表示一段媒体源。 +< /message> +< message > + +Buffer < /source> +< translation > 缓冲区 < /translation> +< /message> +< message > + + Video +Clip < /source> +< translation > 视频片段 < /translation> +< /message> +< message > + + Audio +Clip < /source> +< translation > 音频片段 < /translation> +< /message> +< message > + + Media +In < /source> +< translation > 媒体输入 < /translation> +< /message> +< message > + +Speed < /source> +< translation > 速度 < /translation> +< /message> +< message > + +Reverse < /source> +< translation > 颠倒 < /translation> +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation > 保持音频音调 < /translation> +< /message> +< message > + + +Loop < /source> +< translation > 循环 < /translation> +< /message> +< message > + +None < /source> +< translation > 无 < /translation> +< /message> +< message > + +Clamp < /source> +< translation > 夹钳 < /translation> +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + +Red < /source> +< translation > 红色 < /translation> +< /message> +< message > + +Maroon < /source> +< translation > 紫褐色 < /translation> +< /message> +< message > + +Orange < /source> +< translation > 橙色 < /translation> +< /message> +< message > + +Brown < /source> +< translation > 棕色 < /translation> +< /message> +< message > + + Yellow < /source> + < translation > 黄色 < /translation> + < /message> + < message > + Olive < /source> + < translation +type = "vanished" > 橄榄 < /translation> +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Lime < /source> +< translation > 石灰 < /translation> +< /message> +< message > + +Green < /source> +< translation > 绿色 < /translation> +< /message> +< message > + +Cyan < /source> +< translation > 青色 < /translation> +< /message> +< message > + +Teal < /source> +< translation > +< /message> +< message > + +Blue < /source> +< translation > 蓝色 < /translation> +< /message> +< message > + +Navy < /source> +< translation > 深蓝色 < /translation> +< /message> +< message > + +Pink < /source> +< translation > 粉色 < /translation> +< /message> +< message > + +Purple < /source> +< translation > 紫色 < /translation> +< /message> +< message > + +Silver < /source> +< translation > 银色 < /translation> +< /message> +< message > + +Gray < /source> +< translation > 灰色 < /translation> +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > 选择颜色 < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation > 色差键 < /translation> +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation > 基于一种颜色与其他颜色的距离的简单颜色键. < /translation> +< /message> +< message > + +Input < /source> +< translation > 输入 < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation > 垃圾遮片 < /translation> +< /message> +< message > + + Core +Matte < /source> +< translation > 核心遮片 < /translation> +< /message> +< message > + + Key +Color < /source> +< translation > 基本色调 < /translation> +< /message> +< message > + +Green < /source> +< translation > 绿色 < /translation> +< /message> +< message > + +Blue < /source> +< translation > 蓝色 < /translation> +< /message> +< message > + +Shadows < /source> +< translation > 阴影 < /translation> +< /message> +< message > + +Highlights < /source> +< translation > 高光 < /translation> +< /message> +< message > + + Show +Mask +Only < /source> +< translation > 只显示遮罩 < /translation> +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation > 颜色 < /translation> + < /message> + < /context> + < context > + olive::ColorManager < /name> + < message > + Configuration < /source> + < translation +type = "vanished" > 配置 < /translation> + < /message> + < message > + Default +Input < /source> +< translation +type = "vanished" > 默认输入 < /translation> + < /message> + < message > + Reference +Space < /source> +< translation +type = "vanished" > 参考空间 < /translation> + < /message> + < message > + Scene +Linear < /source> +< translation +type = "vanished" > 场景线性 < /translation> + < /message> + < message > + Compositing +Log < /source> +< translation +type = "vanished" > 合成日志 < /translation> + < /message> + < message > + (built - in) < /source> + < translation +type = "vanished" > 内置 < /translation> + < /message> + < message > + Color +Manager < /source> +< translation +type = "vanished" > 色彩管理 < /translation> + < /message> + < message > + Color +management +configuration +for project. < /source> + < translation type = "vanished" > 项目色彩配置. < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation > 颜色管理 < /translation> +< /message> +< message > + + Input +: + +< translation > 输入: +< /message> +< message > + + Color +Space: +< translation > 颜色空间: +< /message> +< message > + + Display +: + +< translation > 显示: +< /message> +< message > + + View +: + +< translation > 视图: +< /message> +< message > + + Look +: + +< translation > 风格: +< /message> +< message > + +(None) < /source> +< translation > (无) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation > 在这保存颜色 < /translation> +< /message> +< message > + + Reset +To +Default < /source> +< translation > 恢复默认 < /translation> +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + +Red < /source> +< translation > 红色 < /translation> +< /message> +< message > + +Green < /source> +< translation > 绿色 < /translation> +< /message> +< message > + +Blue < /source> +< translation > 蓝色 < /translation> +< /message> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation > 使用传统(8 +位)值 < /translation> +< /message> +< message > + +Web < /source> +< translation > 网络 < /translation> +< /message> +< message > + +(Invalid) < /source> +< translation > 无效的 < /translation> +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > 预览 < /translation> +< /message> +< message > + +Input < /source> +< translation > 输入 < /translation> +< /message> +< message > + +Reference < /source> +< translation > 参考 < /translation> +< /message> +< message > + +Display < /source> +< translation > 显示 < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation > 确认音频 % 1 +:% +2 < /translation> +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation > 无法打开解码器以符合音频 < /translation> +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation > 导入出错 < /translation> +< /message> +< message > + + Nothing +to +import -Make sure a sequence is loaded and it has a connected Viewer node. - 未检测到有效的序列。 + +< translation > 没有可导出的内容 < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation > 正在导入 +... + +< /message> +< message > + + Import +footage +... + +< translation > 导入素材 +... + +< /message> +< message > + + Failed +to +import footage + + +< translation > 无法导入素材 < /translation> +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation > 找不到活动项目面板 < /translation> +< /message> +< message > + + No +Active +Project < /source> +< translation > 没有活动项目 < /translation> +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation > 当前没有用于设置属性的已打开项目 < /translation> + < /message> + < message > + + Failed +to +create +new folder < /source> +< translation > 无法创建新文件夹 < /translation> +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation > 找不到活动项目 < /translation> +< /message> +< message > + + New +Folder < /source> +< translation > 新建文件夹 < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation > 无法创建新序列 < /translation> +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation > 检测到可能的图像序列 < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it + +as +such ? + < translation > 文件“% +1”可能是图像序列的一部分。您要如此导入它吗? +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation > 您必须指定要导出的项目文件 < /translation> +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation > 指定的项目不存在 < /translation> +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > + < /message> + < message > + Project +contains +no +sequences, nothing +to +export + +< translation +type = "obsolete" > 项目不包含任何序列,没有可导出的内容 < /translation> +< /message> +< message > +This +project +has +multiple +sequences.Which +do you wish +to +export +? + < translation type = "obsolete" > 此项目有多个序列。您要导出哪一个? +< /message> +< message > +Enter +number(or % 1 +to +cancel +): + +< translation +type = "obsolete" > 输入数字(或 % 1 +来取消 +): + +< /message> +< message > +Invalid +sequence +number < /source> +< translation +type = "obsolete" > 无效序列数字 < /translation> + < /message> + < message > + Export +succeeded < /source> +< translation +type = "obsolete" > 导出成功 < /translation> + < /message> + < message > + Export +failed: % +1 < /source> +< translation +type = "obsolete" > 导出失败:% +1 < /translation> +< /message> +< message > +Project +failed +to +load: % +1 < /source> +< translation +type = "obsolete" > 项目无法加载:% +1 < /translation> +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation > 无法打开启动文件 < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation > 项目“% +1”不存在。将打开一个新建项目。 +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation > 缺失 +OpenTimelineIO +库 < /translation> +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation > 本构建未使用 +OpenTimelineIO +编译,所以无法打开 +OpenTimelineIO +文件。 +< /message> +< message > +Save +Project < /source> +< translation +type = "obsolete" > 保存项目 < /translation> +< /message> +< message > + + +Error < /source> +< translation > 错误 < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation > 此序列是空的。没有可导出的内容。 +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation > 未检测到有效的序列。 请确保序列已加载并连接到查看器节点。 - - - Olive Project - Olive 项目 - - - - OpenTimelineIO - OpenTimelineIO - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. +< /message> +< message > +Olive +Project < /source> +< translation +type = "vanished" > Olive +项目 < /translation> +< /message> +< message > + +OpenTimelineIO < /source> +< translation > OpenTimelineIO < /translation> +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -To remedy this, please do one of the following: + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > 另存项目为 < /translation> +< /message> +< message > + + Load +Project < /source> +< translation > 加载项目 < /translation> +< /message> +< message > + + Label +Node < /source> +< translation > 标签节点 < /translation> +< /message> +< message > + + Set +node +label < /source> +< translation > 设置节点标签 < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > 序列 % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation > 无法打开最近项目 < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation > 项目“% +1”不存在。您要从最近列表移除此文件吗? +< /message> +< message > + + Unsaved +Changes < /source> +< translation > 未保存的更改 < /translation> +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation > 项目“% +1”有未保存的更改。您要保存吗? +< /message> +< message > + + Save < /source> + < translation > 保存 < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > 全部保存 < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > 不保存 < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translation +type = "vanished" > 全部不保存 < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation > 无法缓存序列 < /translation> +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation > 没有找到此序列的活动查看器。 +< /message> +< message > + + Open +Project < /source> +< translation > 打开项目 < /translation> +< /message> +< message > + + Multi - Layer +Image < /source> +< translation > 多层图像 < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation > 文件“% +1”有多个层。您希望这些层跨多个轨迹分离还是合并到单个图像中 ? +< /message> +< message > + + Multiple +Layers < /source> +< translation > 多层 < /translation> +< /message> +< message > + + Single +Layer < /source> +< translation > 单层 < /translation> +< /message> +< message > + + +Revert < /source> +< translation > 还原 < /translation> +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation > 此项目尚未保存,因此没有要恢复到的上次保存状态. < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation > 项目“% +1”已打开。通过重新打开它,项目将恢复到上次保存的状态。任何未保存的更改都将丢失。是否要继续? +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation > 这将使项目“% +1”恢复到上次保存的状态。所有未保存的更改都将丢失。是否要继续? +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation > 自动恢复错误 < /translation> +< /message> +< message > +Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Olive +may +not +have +permission +to +this +directory. < /source> +< translation +type = "vanished" > 无法将自动恢复保存到“% +1”。Olive可能没有此目录的权限。 +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation > 已成功保存到“% +1” +< /message> +< message > +Olive +Project(Uncompressed +XML +) + +< translation +type = "vanished" > Olive项目(未压缩的XML) +< /message> +< message > + + All +Supported +Projects < /source> +< translation > 所有支持的项目 < /translation> +< /message> +< message > +The +following +projects +had +unsaved +changes +when +Olive +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "vanished" > 当Olive强制退出时,以下项目有未保存的更改。是否要加载它们? +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation > 找到了自动恢复,但未能加载自动恢复索引。必须手动打开自动恢复项目。 +您的可恢复项目仍位于:% +1 < /translation> +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation > 以下项目版本已自动保存: +< /message> +< message > + + Disk +Cache +Full < /source> +< translation > 磁盘缓存已满 < /translation> +< /message> +< message > +The +disk +cache +is +currently +full +and +Olive +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - 另存项目为 - - - - Load Project - 加载项目 - - - - Label Node - 标签节点 - - - - Set node label - 设置节点标签 - - - - Sequence %1 - 序列 %1 - - - - Cannot open recent project - 无法打开最近项目 - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - 项目“%1”不存在。您要从最近列表移除此文件吗? - - - - Unsaved Changes - 未保存的更改 - - - - The project '%1' has unsaved changes. Would you like to save them? - 项目“%1”有未保存的更改。您要保存吗? - - - - Save - 保存 - - - Save All - 全部保存 - - - - Don't Save - 不保存 - - - Don't Save All - 全部不保存 - - - - Failed to cache sequence - 无法缓存序列 - - - - No active viewer found with this sequence. - 没有找到此序列的活动查看器。 - - - - Open Project - 打开项目 - - - - Multi-Layer Image - 多层图像 - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - 文件“%1”有多个层。您希望这些层跨多个轨迹分离还是合并到单个图像中? - - - - Multiple Layers - 多层 - - - - Single Layer - 单层 - - - - - Revert - 还原 - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - 此项目尚未保存,因此没有要恢复到的上次保存状态. - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - 项目“%1”已打开。通过重新打开它,项目将恢复到上次保存的状态。任何未保存的更改都将丢失。是否要继续? - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - 这将使项目“%1”恢复到上次保存的状态。所有未保存的更改都将丢失。是否要继续? - - - - - Auto-Recovery Error - 自动恢复错误 - - - Failed to save auto-recovery to "%1". Olive may not have permission to this directory. - 无法将自动恢复保存到“%1”。Olive可能没有此目录的权限。 - - - - Saved to "%1" successfully - 已成功保存到“%1” - - - Olive Project (Uncompressed XML) - Olive项目(未压缩的XML) - - - - All Supported Projects - 所有支持的项目 - - - The following projects had unsaved changes when Olive forcefully quit. Would you like to load them? - 当Olive强制退出时,以下项目有未保存的更改。是否要加载它们? - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. - -Your recoverable projects are still available at: %1 - 找到了自动恢复,但未能加载自动恢复索引。必须手动打开自动恢复项目。 -您的可恢复项目仍位于:%1 - - - - The following project versions have been auto-saved: - 以下项目版本已自动保存: - - - - Disk Cache Full - 磁盘缓存已满 - - - The disk cache is currently full and Olive is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. - -To remedy this, please do one of the following: - -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - 磁盘缓存当前已满,Olive必须删除旧帧以将其保持在磁盘首选项中设置的限制范围内。这将导致缓存性能显著降低。 + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "vanished" > 磁盘缓存当前已满,Olive必须删除旧帧以将其保持在磁盘首选项中设置的限制范围内。这将导致缓存性能显著降低。 要解决此问题,请执行以下操作之一: -1.手动清除磁盘首选项中的磁盘缓存。 +1. +手动清除磁盘首选项中的磁盘缓存。 -2.在磁盘首选项中增加最大磁盘缓存大小。 +2. +在磁盘首选项中增加最大磁盘缓存大小。 -3.减少磁盘缓存的使用(例如,禁用自动缓存或仅缓存序列的特定部分)。 - - - - olive::CornerPinDistortNode - - - Texture - 纹理 - - - - Perspective - 透视 - - - - Top Left - 左上方 - - - - Top Right - 右上方 - - - - Bottom Right - 右下角 - - - - Bottom Left - 左下角 - - - - Corner Pin - 边角 - - - - Distort the image by dragging the corners. - 通过拖动角来扭曲图像. - - - - olive::CrashHandlerDialog - - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - 抱歉,Olive 崩溃了。请发送错误报告帮助我们修复它。 - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - 尽可能详细地描述您正在进行的操作。 如果可以,请您提供能重现此崩溃的步骤。 - - - - Crash Report: - 崩溃报告: - - - - Send Error Report - 发送错误报告 - - - - Don't Send - 不发送 - - - - Waiting for crash report to be generated... - 正在等待崩溃报告生成... - - - - Upload Failed - 上传失败 - - - Failed to send error report. Please try again later. - 无法发送错误报告。请稍后重试。 - - - No Crash Summary - 没有崩溃摘要 - - - Are you sure you want to send an error report with no crash summary? - 确定要发送没有崩溃摘要的错误报告? - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Failed to send error report (%1). Please try again later. - 无法发送错误报告(%1)。请稍后再试。 - - - - SSL Error - SSL错误 - - - - Encountered the following SSL errors: +3. +减少磁盘缓存的使用(例如,禁用自动缓存或仅缓存序列的特定部分)。 +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + +Texture < /source> +< translation > 纹理 < /translation> +< /message> +< message > + +Perspective < /source> +< translation > 透视 < /translation> +< /message> +< message > + + Top +Left < /source> +< translation > 左上方 < /translation> +< /message> +< message > + + Top +Right < /source> +< translation > 右上方 < /translation> +< /message> +< message > + + Bottom +Right < /source> +< translation > 右下角 < /translation> +< /message> +< message > + + Bottom +Left < /source> +< translation > 左下角 < /translation> +< /message> +< message > + + Corner +Pin < /source> +< translation > 边角 < /translation> +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation > 通过拖动角来扭曲图像. < /translation> +< /message> +< /context> +< context > +olive::CrashHandlerDialog < /name> +< message > +Olive < /source> +< translation +type = "vanished" > Olive < /translation> + < /message> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "vanished" > 抱歉,Olive +崩溃了。请发送错误报告帮助我们修复它。 +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation > 尽可能详细地描述您正在进行的操作。 如果可以,请您提供能重现此崩溃的步骤。 +< /message> +< message > + + Crash +Report: +< translation > 崩溃报告: +< /message> +< message > + + Send +Error +Report < /source> +< translation > 发送错误报告 < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > 不发送 < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > 正在等待崩溃报告生成 +... + +< /message> +< message > + + Upload +Failed < /source> +< translation > 上传失败 < /translation> +< /message> +< message > +Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "obsolete" > 无法发送错误报告。请稍后重试。 +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "obsolete" > 没有崩溃摘要 < /translation> + < /message> + < message > + Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "obsolete" > 确定要发送没有崩溃摘要的错误报告? +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation > 无法发送错误报告(% +1)。请稍后再试。 +< /message> +< message > + + SSL +Error < /source> +< translation > SSL错误 < /translation> +< /message> +< message > + + Encountered +the +following +SSL +errors: -%1 - 遇到以下SSL错误: + % +1 < /source> +< translation > 遇到以下SSL错误: -%1 - - - - You must write a description to submit this crash report. - 您必须写一个描述才能提交此崩溃报告。 - - - - - Failed to send report - 无法发送报告 - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - 未能找到发送报告所需的符号。这是一个包装问题。请通知此包的维护人员。 - - - - Failed to open symbol file. You may not have permission to access it. - 未能打开符号文件。您可能无权访问它。 - - - - Confirm Close - 确认关闭 - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - 崩溃报告仍在上传。现在关闭可能导致不发送报告。您确定要关闭吗? - - - - olive::CropDistortNode - - - Texture - 纹理 - - - - Left - - - - - Top - 顶部 - - - - Right - - - - - Bottom - 底部 - - - - Feather - 羽毛 - - - - Crop - 裁剪 - - - - Crop the edges of an image. - 裁剪图像的边缘。 - - - - olive::CrossDissolveTransition - - - Cross Dissolve - 交叉溶解 - - - - Smoothly transition between two clips. - 两个片段之间平滑转场。 - - - - olive::CurvePanel - - - Curve Editor - 曲线编辑器 - - - - olive::CurveView - - - Zoom to Fit - 适屏缩放 - 缩放到合适大小 - - - - Zoom to Fit Selected - 缩放以适合选定对象 - - - - Reset Zoom - 重置缩放 - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - 线性 - - - - Bezier - 贝塞尔曲线 - - - - Hold - 保留 - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - 正在缓存“%1”的自定义范围 - - - - olive::DespillNode - - - Despill - 去除溢色 - - - - Selection of simple depsill operations - 选择简单的去除溢色操作 - - - - Input - 输入 - - - - Key Color - 关键颜色 - - - - Green - 绿色 - - - - Blue - 蓝色 - - - - Method - 方法 - - - - Average - 平均的 - - - - Double Red Average - 双倍红色平均值 - - - - Double Average - 双倍平均值 - - - - Limit - 限制 - - - - Preserve Luminance - 保持亮度 - - - - olive::DipToColorTransition - - - Dip To Color - 浸入颜色 - - - - Transition between clips by dipping to a color. - 通过浸入颜色在两个片段之间转场。 - - - - Color - 颜色 - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - 磁盘缓存:%1 - - - - Disk Cache Settings - 磁盘缓存设置 - - - - Maximum Disk Cache: - 最大磁盘缓存: - - - - %1 GB - %1 GB - - - - - - Clear Disk Cache - 清除磁盘缓存 - - - - Automatically clear disk cache on close - 关闭时自动清除磁盘缓存 - - - - Are you sure you want to clear the disk cache in '%1'? - 您确定要清除“%1”中的磁盘缓存? - - - - Disk Cache Cleared - 磁盘缓存已清除 - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - 磁盘缓存无法完全清除。您可能需要手动删除缓存文件。 - - - - Disk Cache Partially Cleared - 磁盘缓存已部分清除 - - - - olive::DiskManager - - - - Disk Cache Error - 磁盘缓存错误 - - - - Unable to set custom application disk cache. Using default instead. - 无法设置自定义应用程序磁盘缓存。使用默认设置。 - - - - Disk Cache - 磁盘缓存 - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - 您已选择更改默认磁盘缓存位置。这将使当前缓存无效。您要继续吗? - - - - Failed to open disk cache at "%1". Try a different folder. - 无法打开位于 "%1" 的磁盘缓存。请尝试其他文件夹。 - - - - olive::DisplayTransformNode - - - Display Transform - 显示变换 - - - - Converts an image to or from a display color space. - Converts an image to or from a display color space. - - - - Input - 输入 - - - - Display - 显示 - - - - View - 视图 - - - - Direction - 方向 - - - - Forward - 向前 - - - - Inverse - 反转 - - - - olive::DropShadowFilter - - - Texture - 纹理 - - - - Color - 颜色 - - - - Distance - 距离 - - - - Angle - - - - - Softness - 柔化 - - - - Opacity - 不透明度 - - - - Faster (Lower Quality) - 更快(质量更低) - - - - Drop Shadow - 放置阴影 - - - - Adds a drop shadow to an image. - 向图像添加放置阴影。 - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - 经过:%1 - - - - Remaining: %1 - 剩余:%1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - 高级 - - - - Pixel - 像素 - - - - Pixel Format: - 像素格式: - - - - Performance - 性能 - - - - Threads: - 线程: - - - - YUV Color Range: - YUV颜色范围: - - - - Limited (16-235) - 有限(16-235) - - - - Full (0-255) - 完整(0-255) - - - - Auto - 自动 - - - - olive::ExportAudioTab - - - Codec: - 编解码器: - - - - Sample Rate: - 采样率: - - - - Channel Layout: - 通道布局: - - - - Format: - 格式: - - - - Bit Rate: - 比特率: - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - DNxHD - - - - H.264 - H.264 - - - - H.265 - H.265 - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - ProRes - ProRes - - - - TIFF - TIFF - - - - MP2 - MP2 - - - - MP3 - MP3 - - - - AAC - AAC - - - - PCM (Uncompressed) - PCM (Uncompressed) - - - - AV1 - - - - - Unknown - 未知 - - - - H.264 RGB - H.264 RGB - - - - Cineform - Cineform - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - SubRip SRT - - - - - olive::ExportDialog - - - Filename: - 文件名: - - - - Browse for exported file filename - 浏览已导出的文件名 - - - - Preset: - 预设: - - - Same As Source - High Quality - 与源相同 - 高质量 - - - Same As Source - Medium Quality - 与源相同 - 中等质量 - - - Same As Source - Low Quality - 与源相同 - 低质量 - - - - Range: - 范围: - - - - Entire Sequence - 整个序列 - - - - In to Out - 入点至出点 - - - - Format: - 格式: - - - - Export Video - 导出视频 - - - - Export Audio - 导出音频 - - - - Video - 视频 - - - - Audio - 音频 - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - - Export - 导出 - - - - Preview - 预览 - - - - Invalid parameters - 无效的参数 - - - Both video and audio are disabled. There's nothing to export. - 视频和音频都已禁用。没有可导出的内容。 - - - - - - Invalid filename - 无效文件名 - - - - The filename must contain the extension "%1". Would you like to append it automatically? - 文件名必须包含扩展名“%1”。您要自动附加扩展名吗? - - - - Failed to create output directory - 无法创建输出目录 - - - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - 指定的输出目录不存在且 Olive 无法创建它。请选择一个其他的文件名。 - - - - Confirm Overwrite - 确认覆盖 - - - - The file "%1" already exists. Do you want to overwrite it? - 文件“%1”已存在。您要覆盖它吗? - - - - Invalid Parameters - 无效的参数 - - - - Width and height must be multiples of 2. - 宽度和高度必须是2的倍数。 - - - - Export Subtitles - 导出字幕 - - - - Subtitles - 字幕 - - - - Run In Background - 在后台运行 - - - Exporting in the background allows you to continue using Olive while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - 在后台导出允许您在导出时继续使用Olive,但可能会导致导出速度变慢,并可能严重影响编辑和播放性能。 - - - - Import Result After Export - Import Result After Export - - - - Cancel - 取消 - - - - Video, audio, and subtitles are disabled. There's nothing to export. - 已经禁用视频、音频和字幕。没有可以导出的东西。 - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - 导出设置为图像序列,但文件名没有数字部分(格式为[######],其中#的数量是数字的数量)。 - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - 文件名包含的位数不足,无法满足此导出所需的帧数(对于%n帧,需要%1)。 - - - - - Default - 默认 - - - - Last Used - 最后使用的 - - - - olive::ExportFormat - - - DNxHD - DNxHD - - - - Matroska Video - Matroska Video - - - - MPEG-4 Video - MPEG-4 Video - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - TIFF - TIFF - - - - QuickTime - QuickTime - - - - Unknown - 未知 - - - - MPEG-4 Audio - - - - - Wave Audio - - - - - AIFF - - - - - MP3 - MP3 - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - olive::ExportFormatComboBox - - - Video - 视频 - - - - Audio - 音频 - - - - Subtitle - 字幕 - - - - olive::ExportSavePresetDialog - - - Name: - 名称: - - - - Save Export Preset - 保存导出预设 - - - - Invalid Name - 无效的名称 - - - - You must enter a name to save an export preset. - 必须输入名称才能保存导出预设。 - - - - Overwrite Preset - 覆盖预设 - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - 名为“%1”的预设已存在。是否要覆盖它? - - - - Write Error - 写入错误 - - - - Failed to open file "%1" for writing. - 无法打开文件“%1”进行写入。 - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - 导出到附加文件 - - - - Sidecar Format: - 附加格式: - - - - Codec: - 编解码器: - - - - olive::ExportTask - - - Exporting "%1" - 正在导出 "%1" - - - - Failed to create encoder - 无法创建编码器 - - - Failed to open file - 无法打开文件 - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - 无法覆盖“%1”。导出将被保存为“%2”。 - - - - Failed to open file: %1 - 无法打开文件:%1 - - - - Failed to create subtitle encoder - 无法创建字幕编码器 - - - - Failed to open subtitle sidecar file: %1 - 无法打开字幕侧边栏文件:%1 - - - - olive::ExportVideoTab - - Basic - Would "基本" / "基本的" be more appropriate? - 基本设置 - - - - Width: - 宽度: - - - - Height: - 高度: - - - - Maintain Aspect Ratio: - 保持宽高比: - - - - Scaling Method: - 缩放方式: - - - - Fit - 适合 - - - - Stretch - 拉伸 - - - - Crop - 裁剪 - - - - Frame Rate: - 帧率: - - - - Pixel Aspect Ratio: - 像素宽高比: - - - - Interlacing: - 交错: - - - - Quality: - 质量: - - - - Codec - 编解码器 - - - - Codec: - 编解码器: - - - - Advanced - 高级 - - - - General - 常规 - - - - olive::FFmpegEncoder - - - Failed to allocate output context - 无法分配输出上下文 - - - - Failed to find suitable pixel format for this buffer - 未能找到适合此缓冲区的像素格式 - - - - Failed to configure filter graph - 无法配置筛选器图表 - - - - Failed to open IO context - 无法打开IO上下文 - - - - Failed to write format header - 无法写入格式标头 - - - - Failed to add frame to filter graph - 未能将框架添加到筛选器图 - - - - Failed to retrieve frame from buffer sink - 无法从缓冲区接收器检索帧 - - - - Failed to allocate sample array - 未能分配样本数组 - - - - Failed to resample audio - 无法重新采样音频 - - - - - - - Failed to write interleaved packet - 写入交错数据包失败 - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - 无法将帧发送到编码器 - - - - Failed to receive packet from decoder - 无法从解码器接收数据包 - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - 无法初始化非视频、音频或字幕类型的流 - - - - Failed to find codec for 0x%1 - 找不到0x%1的编解码器 - - - - Retrieved unexpected codec type %1 for codec %2 - 已检索到编解码器%2的意外编解码器类型%1 - - - - Failed to allocate AVStream - 分配AVStream失败 - - - - Failed to allocate AVCodecContext - 无法分配AVCodecContext - - - - Failed to open encoder - 无法打开编码器 - - - - Failed to copy codec parameters to stream - 无法将编解码器参数复制到流 - - - - Failed to create resampling context - 无法创建重新采样上下文 - - - - Failed to create audio frame - 无法创建音频帧 - - - - olive::FileField - - - Open Directory - 打开目录 - - - - Open File - 打开文件 - - - - olive::FlipDistortNode - - - Flip - 翻转 - - - - Flips an image horizontally or vertically - 水平或垂直翻转图像 - - - - Input - 输入 - - - - Horizontal - 水平 - - - - Vertical - 垂直 - - - - olive::FloatSlider - - - %1 dB - %1 dB - - - - %1% - %1% - - - - ∞ - - - - ∞ - - - - - olive::Folder - - - Children - 孩子 - - - - Folder - 文件夹 - - - - Organize several items into a single collection. - 将多个项目组织成一个集合. - - - - olive::Footage - - - Filename - 文件名 - - - - %1: Image - %2x%3 - %1:图像 - %2x%3 - - - - %1: Video - %2x%3 - %1:视频 - %2x%3 - - - - %1: Audio - %n Channel(s), %2Hz - - %1:音频-%n频道,%2Hz - - - - - %1: Subtitle - %1:字幕 - - - - Video - 视频 - - - - Audio - 音频 - - - - Subtitle - 字幕 - - - - Unknown - 未知 - - - - Filename: %1 - 文件名:%1 - - - - Invalid - 无效的 - - - - Media - 媒体 - - - - Import video, audio, or still image files into the composition. - 将视频、音频或静止图像文件导入合成。 - - - - olive::FootagePropertiesDialog - - - "%1" Properties - "%1" 属性 - - - - Name: - 名称: - - - - Tracks: - 轨道: - - - - Set Footage "%1" Properties - - - - - Subtitles - 字幕 - - - - Unknown - 未知 - - - - olive::FootageRelinkDialog - - - Footage - 素材 - - - - Filename - 文件名 - - - - Actions - 操作 - - - - Browse - 浏览 - - - - Relink Footage - 重新链接素材 - - - - Relink "%1" - 重新链接 "%1" - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - 全部文件 - - - - olive::FootageViewerPanel - - - Footage Viewer - 素材查看器 - - - - olive::FrameRateComboBox - - - Custom Frame Rate - 自定义帧速率 - - - - Enter custom frame rate: - 输入自定义帧速率: - - - - Invalid Input - 无效的输入 - - - - Failed to convert "%1" to a frame rate. - 无法将“%1”转换为帧速率。 - - - - Custom... - 自定义... - - - - Custom (%1) - 自定义 (%1) - - - - olive::GapBlock - - - Gap - 空隙 - - - - A time-based node that represents an empty space. - 基于时间的节点,表示一段空白空间。 - - - - olive::GeneratorWithMerge - - - Base - 底色 - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - 目标码率 (Mbps): - - - - Maximum Bit Rate (Mbps): - 最大码率 (Mbps): - - - - Two-Pass - Two-Pass - - - - olive::H264FileSizeSection - - - Target File Size (MB): - 目标文件大小 (MB): - - - - Two-Pass - Two-Pass - - - - olive::H264Section - - - Compression Method: - 压缩方式: - - - - Constant Rate Factor - 恒定速率因子(CRF) - - - - Target Bit Rate - 目标码率 - - - - Target File Size - 目标文件大小 - - - - Encode Speed: - 编码速度: - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - 此设置允许您调整导出速度与压缩质量的比率。 +% +1 < /translation> +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation > 您必须写一个描述才能提交此崩溃报告。 +< /message> +< message > + + + Failed +to +send +report < /source> +< translation > 无法发送报告 < /translation> +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation > 未能找到发送报告所需的符号。这是一个包装问题。请通知此包的维护人员。 +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation > 未能打开符号文件。您可能无权访问它。 +< /message> +< message > + + Confirm +Close < /source> +< translation > 确认关闭 < /translation> +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation > 崩溃报告仍在上传。现在关闭可能导致不发送报告。您确定要关闭吗? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + +Texture < /source> +< translation > 纹理 < /translation> +< /message> +< message > + +Left < /source> +< translation > 左 < /translation> +< /message> +< message > + +Top < /source> +< translation > 顶部 < /translation> +< /message> +< message > + +Right < /source> +< translation > 右 < /translation> +< /message> +< message > + +Bottom < /source> +< translation > 底部 < /translation> +< /message> +< message > + +Feather < /source> +< translation > 羽毛 < /translation> +< /message> +< message > + +Crop < /source> +< translation > 裁剪 < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation > 裁剪图像的边缘。 +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > 交叉溶解 < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation > 两个片段之间平滑转场。 +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > 曲线编辑器 < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translatorcomment > 适屏缩放 < /translatorcomment> +< translation > 缩放到合适大小 < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation > 缩放以适合选定对象 < /translation> +< /message> +< message > + + Reset +Zoom < /source> +< translation > 重置缩放 < /translation> +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > 线性 < /translation> +< /message> +< message > + +Bezier < /source> +< translation > 贝塞尔曲线 < /translation> +< /message> +< message > + +Hold < /source> +< translation > 保留 < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation > 正在缓存“% +1”的自定义范围 < /translation> +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + +Despill < /source> +< translation > 去除溢色 < /translation> +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation > 选择简单的去除溢色操作 < /translation> +< /message> +< message > + +Input < /source> +< translation > 输入 < /translation> +< /message> +< message > + + Key +Color < /source> +< translation > 关键颜色 < /translation> +< /message> +< message > + +Green < /source> +< translation > 绿色 < /translation> +< /message> +< message > + +Blue < /source> +< translation > 蓝色 < /translation> +< /message> +< message > + +Method < /source> +< translation > 方法 < /translation> +< /message> +< message > + +Average < /source> +< translation > 平均的 < /translation> +< /message> +< message > + + Double +Red +Average < /source> +< translation > 双倍红色平均值 < /translation> +< /message> +< message > + + Double +Average < /source> +< translation > 双倍平均值 < /translation> +< /message> +< message > + +Limit < /source> +< translation > 限制 < /translation> +< /message> +< message > + + Preserve +Luminance < /source> +< translation > 保持亮度 < /translation> +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation > 浸入颜色 < /translation> +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation > 通过浸入颜色在两个片段之间转场。 +< /message> +< message > + +Color < /source> +< translation > 颜色 < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation > 磁盘缓存:% +1 < /translation> +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation > 磁盘缓存设置 < /translation> +< /message> +< message > + + Maximum +Disk +Cache: +< translation > 最大磁盘缓存: +< /message> +< message > + + % 1 +GB < /source> +< translation > % 1 +GB < /translation> +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation > 清除磁盘缓存 < /translation> +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation > 关闭时自动清除磁盘缓存 < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation > 您确定要清除“% +1”中的磁盘缓存? +< /message> +< message > + + Disk +Cache +Cleared < /source> +< translation > 磁盘缓存已清除 < /translation> +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation > 磁盘缓存无法完全清除。您可能需要手动删除缓存文件。 +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation > 磁盘缓存已部分清除 < /translation> +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation > 磁盘缓存错误 < /translation> +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation > 无法设置自定义应用程序磁盘缓存。使用默认设置。 +< /message> +< message > + + Disk +Cache < /source> +< translation > 磁盘缓存 < /translation> +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation > 您已选择更改默认磁盘缓存位置。这将使当前缓存无效。您要继续吗? +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation > 无法打开位于 & quot; +% +1 & quot; +的磁盘缓存。请尝试其他文件夹。 +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation > 显示变换 < /translation> +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation > Converts +an +image +to +or +from +a +display +color +space. < /translation> +< /message> +< message > + +Input < /source> +< translation > 输入 < /translation> +< /message> +< message > + +Display < /source> +< translation > 显示 < /translation> +< /message> +< message > + +View < /source> +< translation > 视图 < /translation> +< /message> +< message > + +Direction < /source> +< translation > 方向 < /translation> +< /message> +< message > + +Forward < /source> +< translation > 向前 < /translation> +< /message> +< message > + +Inverse < /source> +< translation > 反转 < /translation> +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + +Texture < /source> +< translation > 纹理 < /translation> +< /message> +< message > + +Color < /source> +< translation > 颜色 < /translation> +< /message> +< message > + +Distance < /source> +< translation > 距离 < /translation> +< /message> +< message > + +Angle < /source> +< translation > 角 < /translation> +< /message> +< message > + +Softness < /source> +< translation > 柔化 < /translation> +< /message> +< message > + +Opacity < /source> +< translation > 不透明度 < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation > 更快(质量更低) +< /message> +< message > + + Drop +Shadow < /source> +< translation > 放置阴影 < /translation> +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation > 向图像添加放置阴影。 +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > 经过:% +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > 剩余:% +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + +Advanced < /source> +< translation > 高级 < /translation> +< /message> +< message > + +Pixel < /source> +< translation > 像素 < /translation> +< /message> +< message > + + Pixel +Format: +< translation > 像素格式: +< /message> +< message > + +Performance < /source> +< translation > 性能 < /translation> +< /message> +< message > + + Threads +: + +< translation > 线程: +< /message> +< message > + + YUV +Color +Range: +< translation > YUV颜色范围: +< /message> +< message > + + Limited(16 - 235) < /source> + < translation > 有限(16 - 235) +< /message> +< message > + + Full(0 - 255) < /source> + < translation > 完整(0 - 255) +< /message> +< message > + +Auto < /source> +< translation > 自动 < /translation> +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > 编解码器: +< /message> +< message > + + Sample +Rate: +< translation > 采样率: +< /message> +< message > + + Channel +Layout: +< translation > 通道布局: +< /message> +< message > + + Format +: + +< translation > 格式: +< /message> +< message > + + Bit +Rate: +< translation > 比特率: +< /message> +< message > + + % 1 +kbps < /source> +< translation > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + H +.264 < /source> +< translation > H +.264 < /translation> +< /message> +< message > + + H +.265 < /source> +< translation > H +.265 < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +ProRes < /source> +< translation > ProRes < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +MP2 < /source> +< translation > MP2 < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +AAC < /source> +< translation > AAC < /translation> +< /message> +< message > + +PCM(Uncompressed) < /source> +< translation > PCM(Uncompressed) < /translation> +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< message > + + H +.264 +RGB < /source> +< translation > H +.264 +RGB < /translation> +< /message> +< message > + +Cineform < /source> +< translation > Cineform < /translation> +< /message> +< message > + +FLAC < /source> +< translation > +< /message> +< message > + +Opus < /source> +< translation > +< /message> +< message > + +Vorbis < /source> +< translation > +< /message> +< message > + +VP9 < /source> +< translation > +< /message> +< message > + + SubRip +SRT < /source> +< translation > +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > 文件名: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation > 浏览已导出的文件名 < /translation> +< /message> +< message > + + Preset +: + +< translation > 预设: +< /message> +< message > +Same +As +Source - High +Quality < /source> +< translation +type = "obsolete" > 与源相同 - 高质量 < /translation> + < /message> + < message > + Same +As +Source - Medium +Quality < /source> +< translation +type = "obsolete" > 与源相同 - 中等质量 < /translation> + < /message> + < message > + Same +As +Source - Low +Quality < /source> +< translation +type = "obsolete" > 与源相同 - 低质量 < /translation> +< /message> +< message > + + Range +: + +< translation > 范围: +< /message> +< message > + + Entire +Sequence < /source> +< translation > 整个序列 < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > 入点至出点 < /translation> +< /message> +< message > + + Format +: + +< translation > 格式 +: + +< /message> +< message > + + Export +Video < /source> +< translation > 导出视频 < /translation> +< /message> +< message > + + Export +Audio < /source> +< translation > 导出音频 < /translation> +< /message> +< message > + +Video < /source> +< translation > 视频 < /translation> +< /message> +< message > + +Audio < /source> +< translation > 音频 < /translation> +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > 导出 < /translation> +< /message> +< message > + +Preview < /source> +< translation > 预览 < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation > 无效的参数 < /translation> +< /message> +< message > +Both +video +and +audio +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "obsolete" > 视频和音频都已禁用。没有可导出的内容。 +< /message> +< message > + + + + Invalid +filename < /source> +< translation > 无效文件名 < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation > 文件名必须包含扩展名“% +1”。您要自动附加扩展名吗? +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation > 无法创建输出目录 < /translation> +< /message> +< message > +The +intended +output +directory +doesn & apos; +t +exist +and +Olive +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "vanished" > 指定的输出目录不存在且 +Olive +无法创建它。请选择一个其他的文件名。 +< /message> +< message > + + Confirm +Overwrite < /source> +< translation > 确认覆盖 < /translation> +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation > 文件“% +1”已存在。您要覆盖它吗? +< /message> +< message > + + Invalid +Parameters < /source> +< translation > 无效的参数 < /translation> +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation > 宽度和高度必须是2的倍数。 +< /message> +< message > + + Export +Subtitles < /source> +< translation > 导出字幕 < /translation> +< /message> +< message > + +Subtitles < /source> +< translation > 字幕 < /translation> +< /message> +< message > + + Run +In +Background < /source> +< translation > 在后台运行 < /translation> +< /message> +< message > +Exporting in the +background +allows +you +to +continue using +Olive +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "vanished" > 在后台导出允许您在导出时继续使用Olive,但可能会导致导出速度变慢,并可能严重影响编辑和播放性能。 +< /message> +< message > + + Import +Result +After +Export < /source> +< translation > Import +Result +After +Export < /translation> +< /message> +< message > + +Cancel < /source> +< translation > 取消 < /translation> +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation > 已经禁用视频、音频和字幕。没有可以导出的东西。 +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation > 导出设置为图像序列,但文件名没有数字部分(格式为[ +######],其中 +#的数量是数字的数量)。 +< /message> +< message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + 文件名包含的位数不足,无法满足此导出所需的帧数(对于 % n帧,需要 % 1)。 +< /translation> +< /message> +< message > + +Default < /source> +< translation > 默认 < /translation> +< /message> +< message > + + Last +Used < /source> +< translation > 最后使用的 < /translation> +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + Matroska +Video < /source> +< translation > Matroska +Video < /translation> +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > MPEG - 4 +Video < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +QuickTime < /source> +< translation > QuickTime < /translation> +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation > +< /message> +< message > + + Wave +Audio < /source> +< translation > +< /message> +< message > + +AIFF < /source> +< translation > +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +FLAC < /source> +< translation > +< /message> +< message > + +Ogg < /source> +< translation > +< /message> +< message > + +WebM < /source> +< translation > +< /message> +< message > + + SubRip +SRT < /source> +< translation > +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + +Video < /source> +< translation > 视频 < /translation> +< /message> +< message > + +Audio < /source> +< translation > 音频 < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > 字幕 < /translation> +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation > 名称: +< /message> +< message > + + Save +Export +Preset < /source> +< translation > 保存导出预设 < /translation> +< /message> +< message > + + Invalid +Name < /source> +< translation > 无效的名称 < /translation> +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation > 必须输入名称才能保存导出预设。 +< /message> +< message > + + Overwrite +Preset < /source> +< translation > 覆盖预设 < /translation> +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation > 名为“% +1”的预设已存在。是否要覆盖它? +< /message> +< message > + + Write +Error < /source> +< translation > 写入错误 < /translation> +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation > 无法打开文件“ +% +1”进行写入。 +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation > 导出到附加文件 < /translation> +< /message> +< message > + + Sidecar +Format: +< translation > 附加格式: +< /message> +< message > + + Codec +: + +< translation > 编解码器: +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation > 正在导出 & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation > 无法创建编码器 < /translation> +< /message> +< message > +Failed +to +open +file < /source> +< translation +type = "obsolete" > 无法打开文件 < /translation> +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation > 无法覆盖“% +1”。导出将被保存为“% +2”。 +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation > 无法打开文件:% +1 < /translation> +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation > 无法创建字幕编码器 < /translation> +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation > 无法打开字幕侧边栏文件:% +1 < /translation> +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > +Basic < /source> +< translatorcomment > Would & quot; +基本 & quot; +/ "基本的" be more appropriate? + 基本设置 < /translation> +< /message> +< message > + + Width +: + +< translation > 宽度: +< /message> +< message > + + Height +: + +< translation > 高度: +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > 保持宽高比: +< /message> +< message > + + Scaling +Method: +< translation > 缩放方式: +< /message> +< message > + +Fit < /source> +< translation > 适合 < /translation> +< /message> +< message > + +Stretch < /source> +< translation > 拉伸 < /translation> +< /message> +< message > + +Crop < /source> +< translation > 裁剪 < /translation> +< /message> +< message > + + Frame +Rate: +< translation > 帧率: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > 像素宽高比: +< /message> +< message > + + Interlacing +: + +< translation > 交错: +< /message> +< message > + + Quality +: + +< translation > 质量: +< /message> +< message > + +Codec < /source> +< translation > 编解码器 < /translation> +< /message> +< message > + + Codec +: + +< translation > 编解码器: +< /message> +< message > + +Advanced < /source> +< translation > 高级 < /translation> +< /message> +< message > + +General < /source> +< translation > 常规 < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation > 无法分配输出上下文 < /translation> +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation > 未能找到适合此缓冲区的像素格式 < /translation> +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation > 无法配置筛选器图表 < /translation> +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation > 无法打开IO上下文 < /translation> +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation > 无法写入格式标头 < /translation> +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation > 未能将框架添加到筛选器图 < /translation> +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation > 无法从缓冲区接收器检索帧 < /translation> +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation > 未能分配样本数组 < /translation> +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation > 无法重新采样音频 < /translation> +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation > 写入交错数据包失败 < /translation> +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation > 无法将帧发送到编码器 < /translation> +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation > 无法从解码器接收数据包 < /translation> +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation > 无法初始化非视频、音频或字幕类型的流 < /translation> +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation > 找不到0x % 1 +的编解码器 < /translation> +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation > 已检索到编解码器 % 2的意外编解码器类型 % 1 < /translation> +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation > 分配AVStream失败 < /translation> +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation > 无法分配AVCodecContext < /translation> +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation > 无法打开编码器 < /translation> +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation > 无法将编解码器参数复制到流 < /translation> +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation > 无法创建重新采样上下文 < /translation> +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation > 无法创建音频帧 < /translation> +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation > 打开目录 < /translation> +< /message> +< message > + + Open +File < /source> +< translation > 打开文件 < /translation> +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + +Flip < /source> +< translation > 翻转 < /translation> +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation > 水平或垂直翻转图像 < /translation> +< /message> +< message > + +Input < /source> +< translation > 输入 < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > 水平 < /translation> +< /message> +< message > + +Vertical < /source> +< translation > 垂直 < /translation> +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > % 1 +dB < /translation> +< /message> +< message > + + % 1 % +< translation > % 1 % +< /message> +< message > + + ∞ +< translation +type = "unfinished" > + < /message> + < message > + ∞ < /source> + < translation +type = "vanished" >♪ +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + +Children < /source> +< translation > 孩子 < /translation> +< /message> +< message > + +Folder < /source> +< translation > 文件夹 < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation > 将多个项目组织成一个集合. < /translation> +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + +Filename < /source> +< translation > 文件名 < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation > % 1:图像 - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation > % 1:视频 - % 2 +x % 3 < /translation> +< /message> +< message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + % 1 +: +音频 - % n频道,% +2 +Hz < /numerusform> +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation > % 1:字幕 < /translation> +< /message> +< message > + +Video < /source> +< translation > 视频 < /translation> +< /message> +< message > + +Audio < /source> +< translation > 音频 < /translation> +< /message> +< message > + +Subtitle < /source> +< translation > 字幕 < /translation> +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation > 文件名:% +1 < /translation> +< /message> +< message > + +Invalid < /source> +< translation > 无效的 < /translation> +< /message> +< message > + +Media < /source> +< translation > 媒体 < /translation> +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation > 将视频、音频或静止图像文件导入合成。 +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation > & quot; +% +1 & quot; +属性 < /translation> +< /message> +< message > + + Name +: + +< translation > 名称: +< /message> +< message > + + Tracks +: + +< translation > 轨道: +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Subtitles < /source> +< translation > 字幕 < /translation> +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + +Footage < /source> +< translation > 素材 < /translation> +< /message> +< message > + +Filename < /source> +< translation > 文件名 < /translation> +< /message> +< message > + +Actions < /source> +< translation > 操作 < /translation> +< /message> +< message > + +Browse < /source> +< translation > 浏览 < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation > 重新链接素材 < /translation> +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation > 重新链接 & quot; +% +1 & quot; + +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "obsolete" > 全部文件 < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation > 素材查看器 < /translation> +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation > 自定义帧速率 < /translation> +< /message> +< message > + + Enter +custom +frame +rate: +< translation > 输入自定义帧速率: +< /message> +< message > + + Invalid +Input < /source> +< translation > 无效的输入 < /translation> +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation > 无法将“% +1”转换为帧速率。 +< /message> +< message > + + Custom +... + +< translation > 自定义 +... + +< /message> +< message > + + Custom( % 1 +) + +< translation > 自定义( % 1 +) + +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + +Gap < /source> +< translation > 空隙 < /translation> +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation > 基于时间的节点,表示一段空白空间。 +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + +Base < /source> +< translation > 底色 < /translation> +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > 目标码率(Mbps): +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > 最大码率(Mbps): +< /message> +< message > + +Two - Pass < /source> +< translation > Two - Pass < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > 目标文件大小(MB): +< /message> +< message > + +Two - Pass < /source> +< translation > Two - Pass < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Compression +Method: +< translation > 压缩方式: +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation > 恒定速率因子(CRF) +< /message> +< message > + + Target +Bit +Rate < /source> +< translation > 目标码率 < /translation> +< /message> +< message > + + Target +File +Size < /source> +< translation > 目标文件大小 < /translation> +< /message> +< message > + + Encode +Speed: +< translation > 编码速度: +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation > 此设置允许您调整导出速度与压缩质量的比率。 -如果使用“恒定速率因子”(Constant Rate Factor),较慢的速度将导致相同质量的文件大小变小。 +如果使用“恒定速率因子”(Constant +Rate +Factor),较慢的速度将导致相同质量的文件大小变小。 -如果使用“目标比特率”或“目标文件大小”,则速度较慢将导致相同比特率/文件大小的质量更高。 +如果使用“目标比特率”或“目标文件大小”,则速度较慢将导致相同比特率 / 文件大小的质量更高。 此设置相当于libx264中的“预设”设置。 - - - - Ultra Fast - 极致快 - - - - Super Fast - 超快 - - - - Very Fast - 非常快 - - - - Faster - 更快 - - - - Fast - - - - - Medium - 中等 - - - - Slow - - - - - Slower - 更慢 - - - - Very Slow - 非常慢 - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - 图像序列: - - - - Frame to Export: - 要导出的框架: - - - - olive::InterlacedComboBox - - - None (Progressive) - 无 (渐进) - - - - Top-Field First - 上场优先 - - - - Bottom-Field First - 下场优先 - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - 关键帧属性 - - - - In: - 入: - - - - Out: - 出: - - - - Linear - 线性 - - - - Hold - 保留 - - - - Bezier - 贝塞尔曲线 - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - 线性 - - - - Bezier - 贝塞尔曲线 - - - - Hold - 保留 - - - - P&roperties - 属性(&R) - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - 线性 - - - Bezier - 贝塞尔曲线 - - - Hold - 保留 - - - P&roperties - 属性(&R) - - - - olive::LoadOTIOTask - - Failed to load OpenTimelineIO from file "%1" - 无法从文件 "%1" 加载 OpenTimelineIO - - - - Unknown OpenTimelineIO root element - 未知的 OpenTimelineIO 根元素 - - - - Failed to load clip - 无法加载片段 - - - - Failed to load OpenTimelineIO from file "%1" +< /message> +< message > + + Ultra +Fast < /source> +< translation > 极致快 < /translation> +< /message> +< message > + + Super +Fast < /source> +< translation > 超快 < /translation> +< /message> +< message > + + Very +Fast < /source> +< translation > 非常快 < /translation> +< /message> +< message > + +Faster < /source> +< translation > 更快 < /translation> +< /message> +< message > + +Fast < /source> +< translation > 快 < /translation> +< /message> +< message > + +Medium < /source> +< translation > 中等 < /translation> +< /message> +< message > + +Slow < /source> +< translation > 慢 < /translation> +< /message> +< message > + +Slower < /source> +< translation > 更慢 < /translation> +< /message> +< message > + + Very +Slow < /source> +< translation > 非常慢 < /translation> +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation > 图像序列: +< /message> +< message > + + Frame +to +Export: +< translation > 要导出的框架: +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + +None(Progressive) < /source> +< translation > 无(渐进) < /translation> +< /message> +< message > + + Top - Field +First < /source> +< translation > 上场优先 < /translation> +< /message> +< message > + + Bottom - Field +First < /source> +< translation > 下场优先 < /translation> +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation > 关键帧属性 < /translation> +< /message> +< message > + + In +: + +< translation > 入: +< /message> +< message > + + Out +: + +< translation > 出: +< /message> +< message > + +Linear < /source> +< translation > 线性 < /translation> +< /message> +< message > + +Hold < /source> +< translation > 保留 < /translation> +< /message> +< message > + +Bezier < /source> +< translation > 贝塞尔曲线 < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Linear < /source> +< translation > 线性 < /translation> +< /message> +< message > + +Bezier < /source> +< translation > 贝塞尔曲线 < /translation> +< /message> +< message > + +Hold < /source> +< translation > 保留 < /translation> +< /message> +< message > + + P & roperties < /source> + < translation > 属性( & R +) + +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "obsolete" > 线性 < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "obsolete" > 贝塞尔曲线 < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "obsolete" > 保留 < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "obsolete" > 属性( & R +) + +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > +Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; + +< translation +type = "obsolete" > 无法从文件 & quot; +% +1 & quot; +加载 +OpenTimelineIO < /translation> +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation > 未知的 +OpenTimelineIO +根元素 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation > 无法加载片段 < /translation> +< /message> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -OpenTimelineIO Error: +OpenTimelineIO +Error: -%2 - 无法从文件“%1”加载OpenTimelineIO + % +2 < /source> +< translation > 无法从文件“% +1”加载OpenTimelineIO OpenTimelineIO错误: -%2 - - - - Sequence %1 - 序列 %1 - - - - olive::MainMenu - - - &Save '%1' - 保存 '%1'(&S) - - - - Save '%1' &As - 另存 '%1' 为(&A) - - - Close '%1' - 关闭 '%1' - - - Close All Except '%1' - 除‘%1’外关闭所有 - - - - &Save Project - 保存项目(&S) - - - - Save Project &As - 另存项目为(&A) - - - Close Project - 关闭项目 - - - Close All Except Current Project - 除当前项目外关闭所有 - - - - (None) - (无) - - - - &File - 文件(&F) - - - - &New - 新建(&N) - - - - &Open Project - 打开项目(&O) - - - - Open &Recent - 打开最近(&R) - - - - &Clear Recent List - 清除最近列表(&C) - - - Sa&ve All Projects - 保存所有项目(&V) - - - - &Import... - 导入(&I)... - - - - &Export - 导出(&E) - - - - &Media... - 媒体(&M)... - - - &Project Properties... - 项目属性(&P)... - - - Close All Projects - 关闭所有项目 - - - - E&xit - 退出(&X) - - - - &Edit - 编辑(&E) - - - - Insert - 插入 - - - - Overwrite - 覆盖 - - - - Select &All - 全选(&A) - - - - Deselect All - 取消全选 - - - - Ripple to In Point - 涟漪删除至入点 - - - - Ripple to Out Point - 涟漪删除至出点 - - - - Edit to In Point - 剪辑至入点 - - - - Edit to Out Point - 剪辑至出点 - - - - Delete In/Out Point - 删除入点/出点 - - - - Ripple Delete In/Out Point - 涟漪删除入点/出点 - - - - Set/Edit Marker - 设置/编辑标记 - - - - &View - 视图(&V) - - - - Zoom In - 放大 - - - - Zoom Out - 缩小 - - - - Increase Track Height - 增加轨道高度 - - - - Decrease Track Height - 降低轨道高度 - - - - Toggle Show All - 轨道全部显示 - - - - Full Screen - 全屏 - - - - Full Screen Viewer - 全屏查看器 - - - - &Playback - 回放(&P) - - - - Go to Start - 回到起始帧 - - - - Previous Frame - 前一帧 - - - - Play/Pause - 播放/暂停 - - - - Play In to Out - 播放入点至出点 - - - - Next Frame - 后一帧 - - - - Go to End - 转到结束帧 - - - - Go to Previous Cut - 转到前一切点 - - - - Go to Next Cut - 转到后一切点 - - - - Go to In Point - 转到入点 - - - - Go to Out Point - 转到出点 - - - - Shuttle Left - 向左播放 - - - - Shuttle Stop - 停止播放 - - - - Shuttle Right - 向右播放 - - - - Loop - 循环 - - - - &Sequence - 序列(&S) - - - - Cache Entire Sequence - 缓存整个序列 - - - - Cache Sequence In/Out - 缓存序列入点/出点 - - - - Maximize Panel - 最大化面板 - - - Lock Panels - 锁定面板 - - - - Reset to Default Layout - 重置为默认布局 - - - - &Tools - 工具(&T) - - - - Pointer Tool - 指针工具 - - - - Edit Tool - 编辑工具 - - - - Ripple Tool - 涟漪工具 - - - - Rolling Tool - 滚动工具 - - - - Razor Tool - 刀片工具 - - - - Slip Tool - 滑移工具 - - - - Slide Tool - 滑动工具 - - - - Hand Tool - 手形工具 - - - - Zoom Tool - 缩放工具 - - - - Transition Tool - 转场工具 - - - - Enable Snapping - 启用吸附 - - - - Proxy Settings... - - - - - Preferences - 首选项 - - - - Add Tool Item - - - - - &Help - 帮助(&H) - - - - A&ction Search - 操作搜索(&C) - - - - Send &Feedback... - 发送反馈(&F)... - - - - &About... - 关于(&A)... - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - M - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - J - - - - K - - - - - L - L - - - - ` +% +2 < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > 序列 % 1 < /translation> +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation > 保存 & apos; +% +1 & apos; +( & S +) + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation > 另存 & apos; +% +1 & apos; +为( & A +) + +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > 关闭 & apos; +% +1 & apos; + +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "vanished" > 除‘% +1’外关闭所有 < /translation> +< /message> +< message > + + & Save +Project < /source> +< translation > 保存项目( & S +) + +< /message> +< message > + + Save +Project & As < /source> +< translation > 另存项目为( & A +) + +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > 关闭项目 < /translation> + < /message> + < message > + Close +All +Except +Current +Project < /source> +< translation +type = "vanished" > 除当前项目外关闭所有 < /translation> +< /message> +< message > + +(None) < /source> +< translation > (无) < /translation> +< /message> +< message > + + & File < /source> + < translation > 文件( & F +) + +< /message> +< message > + + & New < /source> + < translation > 新建( & N +) + +< /message> +< message > + + & Open +Project < /source> +< translation > 打开项目( & O +) + +< /message> +< message > + + Open & Recent < /source> + < translation > 打开最近( & R +) + +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > 清除最近列表( & C +) + +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > 保存所有项目( & V +) + +< /message> +< message > + + & Import +... + +< translation > 导入( & I +)... + +< /message> +< message > + + & Export < /source> + < translation > 导出( & E +) + +< /message> +< message > + + & Media +... + +< translation > 媒体( & M +)... + +< /message> +< message > + & Project +Properties +... + +< translation +type = "obsolete" > 项目属性( & P +)... + +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > 关闭所有项目 < /translation> +< /message> +< message > + + E & xit < /source> + < translation > 退出( & X +) + +< /message> +< message > + + & Edit < /source> + < translation > 编辑( & E +) + +< /message> +< message > + +Insert < /source> +< translation > 插入 < /translation> +< /message> +< message > + +Overwrite < /source> +< translation > 覆盖 < /translation> +< /message> +< message > + + Select & All < /source> + < translation > 全选( & A +) + +< /message> +< message > + + Deselect +All < /source> +< translation > 取消全选 < /translation> +< /message> +< message > + + Ripple +to +In +Point < /source> +< translation > 涟漪删除至入点 < /translation> +< /message> +< message > + + Ripple +to +Out +Point < /source> +< translation > 涟漪删除至出点 < /translation> +< /message> +< message > + + Edit +to +In +Point < /source> +< translation > 剪辑至入点 < /translation> +< /message> +< message > + + Edit +to +Out +Point < /source> +< translation > 剪辑至出点 < /translation> +< /message> +< message > + + Delete +In / Out +Point < /source> +< translation > 删除入点 / 出点 < /translation> +< /message> +< message > + + Ripple +Delete +In / Out +Point < /source> +< translation > 涟漪删除入点 / 出点 < /translation> +< /message> +< message > + + Set / Edit +Marker < /source> +< translation > 设置 / 编辑标记 < /translation> +< /message> +< message > + + & View < /source> + < translation > 视图( & V +) + +< /message> +< message > + + Zoom +In < /source> +< translation > 放大 < /translation> +< /message> +< message > + + Zoom +Out < /source> +< translation > 缩小 < /translation> +< /message> +< message > + + Increase +Track +Height < /source> +< translation > 增加轨道高度 < /translation> +< /message> +< message > + + Decrease +Track +Height < /source> +< translation > 降低轨道高度 < /translation> +< /message> +< message > + + Toggle +Show +All < /source> +< translation > 轨道全部显示 < /translation> +< /message> +< message > + + Full +Screen < /source> +< translation > 全屏 < /translation> +< /message> +< message > + + Full +Screen +Viewer < /source> +< translation > 全屏查看器 < /translation> +< /message> +< message > + + & Playback < /source> + < translation > 回放( & P +) + +< /message> +< message > + + Go +to +Start < /source> +< translation > 回到起始帧 < /translation> +< /message> +< message > + + Previous +Frame < /source> +< translation > 前一帧 < /translation> +< /message> +< message > + +Play / Pause < /source> +< translation > 播放 / 暂停 < /translation> +< /message> +< message > + + Play +In +to +Out < /source> +< translation > 播放入点至出点 < /translation> +< /message> +< message > + + Next +Frame < /source> +< translation > 后一帧 < /translation> +< /message> +< message > + + Go +to +End < /source> +< translation > 转到结束帧 < /translation> +< /message> +< message > + + Go +to +Previous +Cut < /source> +< translation > 转到前一切点 < /translation> +< /message> +< message > + + Go +to +Next +Cut < /source> +< translation > 转到后一切点 < /translation> +< /message> +< message > + + Go +to +In +Point < /source> +< translation > 转到入点 < /translation> +< /message> +< message > + + Go +to +Out +Point < /source> +< translation > 转到出点 < /translation> +< /message> +< message > + + Shuttle +Left < /source> +< translation > 向左播放 < /translation> +< /message> +< message > + + Shuttle +Stop < /source> +< translation > 停止播放 < /translation> +< /message> +< message > + + Shuttle +Right < /source> +< translation > 向右播放 < /translation> +< /message> +< message > + +Loop < /source> +< translation > 循环 < /translation> +< /message> +< message > + + & Sequence < /source> + < translation > 序列( & S +) + +< /message> +< message > + + Cache +Entire +Sequence < /source> +< translation > 缓存整个序列 < /translation> +< /message> +< message > + + Cache +Sequence +In / Out < /source> +< translation > 缓存序列入点 / 出点 < /translation> +< /message> +< message > + + Maximize +Panel < /source> +< translation > 最大化面板 < /translation> +< /message> +< message > +Lock +Panels < /source> +< translation +type = "vanished" > 锁定面板 < /translation> +< /message> +< message > + + Reset +to +Default +Layout < /source> +< translation > 重置为默认布局 < /translation> +< /message> +< message > + + & Tools < /source> + < translation > 工具( & T +) + +< /message> +< message > + + Pointer +Tool < /source> +< translation > 指针工具 < /translation> +< /message> +< message > + + Edit +Tool < /source> +< translation > 编辑工具 < /translation> +< /message> +< message > + + Ripple +Tool < /source> +< translation > 涟漪工具 < /translation> +< /message> +< message > + + Rolling +Tool < /source> +< translation > 滚动工具 < /translation> +< /message> +< message > + + Razor +Tool < /source> +< translation > 刀片工具 < /translation> +< /message> +< message > + + Slip +Tool < /source> +< translation > 滑移工具 < /translation> +< /message> +< message > + + Slide +Tool < /source> +< translation > 滑动工具 < /translation> +< /message> +< message > + + Hand +Tool < /source> +< translation > 手形工具 < /translation> +< /message> +< message > + + Zoom +Tool < /source> +< translation > 缩放工具 < /translation> +< /message> +< message > + + Transition +Tool < /source> +< translation > 转场工具 < /translation> +< /message> +< message > + + Enable +Snapping < /source> +< translation > 启用吸附 < /translation> +< /message> +< message > + + Proxy +Settings +... + +< translation +type = "unfinished" > +< /message> +< message > + +Preferences < /source> +< translation > 首选项 < /translation> +< /message> +< message > + + Add +Tool +Item < /source> +< translation +type = "unfinished" > +< /message> +< message > + + & Help < /source> + < translation > 帮助( & H +) + +< /message> +< message > + + A & ction +Search < /source> +< translation > 操作搜索( & C +) + +< /message> +< message > + + Send & Feedback +... + +< translation > 发送反馈( & F +)... + +< /message> +< message > + + & About +... + +< translation > 关于( & A +)... + +< /message> +< message > + +Ctrl + O < /source> +< translation > +< /message> +< message > + +Ctrl + S < /source> +< translation > +< /message> +< message > + +Ctrl + Shift + S < /source> +< translation > +< /message> +< message > + +F12 < /source> +< translation > +< /message> +< message > + +Ctrl + I < /source> +< translation > +< /message> +< message > + +Ctrl + M < /source> +< translation > +< /message> +< message > + +Shift + F10 < /source> +< translation > +< /message> +< message > + +Ctrl + Z < /source> +< translation > +< /message> +< message > + +Ctrl + Shift + Z < /source> +< translation > +< /message> +< message > + +Backspace < /source> +< translation > +< /message> +< message > + +Ctrl + A < /source> +< translation > +< /message> +< message > + +Ctrl + Shift + A < /source> +< translation > +< /message> +< message > + + , +< translation > +< /message> +< message > + + +. + +< translation > +< /message> +< message > + +Q < /source> +< translation > +< /message> +< message > + +W < /source> +< translation > +< /message> +< message > + +Ctrl + Alt + Q < /source> +< translation > +< /message> +< message > + +Ctrl + Alt + W < /source> +< translation > +< /message> +< message > + +Alt + Left < /source> +< translation > +< /message> +< message > + +Alt + Right < /source> +< translation > +< /message> +< message > + +[ +< translation > +< /message> +< message > + + ] < /source> +< translation > +< /message> +< message > + + ; + +< translation > +< /message> +< message > + + & apos; + +< translation > +< /message> +< message > + +M < /source> +< translation > M < /translation> +< /message> +< message > + + = +< translation > +< /message> +< message > + +- +< translation > +< /message> +< message > + +Ctrl += +< translation > +< /message> +< message > + +Ctrl + - +< translation > +< /message> +< message > + + \ +< translation > +< /message> +< message > + +F11 < /source> +< translation > +< /message> +< message > + +Home < /source> +< translation > +< /message> +< message > + +Left < /source> +< translation > +< /message> +< message > + +Space < /source> +< translation > +< /message> +< message > + +Shift + Space < /source> +< translation > +< /message> +< message > + +Right < /source> +< translation > +< /message> +< message > + +End < /source> +< translation > +< /message> +< message > + +Up < /source> +< translation > +< /message> +< message > + +Down < /source> +< translation > +< /message> +< message > + +Shift + I < /source> +< translation > +< /message> +< message > + +Shift + O < /source> +< translation > +< /message> +< message > + +J < /source> +< translation > J < /translation> +< /message> +< message > + +K < /source> +< translation > +< /message> +< message > + +L < /source> +< translation > L < /translation> +< /message> +< message > + + ` diff --git a/app/ts/zh_TW.ts b/app/ts/zh_TW.ts index 2e3ac81fd..5e352a278 100644 --- a/app/ts/zh_TW.ts +++ b/app/ts/zh_TW.ts @@ -1,4066 +1,7627 @@ - - - + + + - AudioParams - - - %1 Hz - %1 赫茲 - - - - Mono - 單聲道 - - - - Stereo - 立體聲 - - - - 2.1 - 2.1 - - - - 5.1 - 5.1 - - - - 7.1 - 7.1 - - - - - Unknown (0x%1) - 未知 (0x%1) - - - - Unsigned 8-bit (Packed) - - - - - Signed 16-bit (Packed) - - - - - Signed 32-bit (Packed) - - - - - Signed 64-bit (Packed) - - - - - Float 32-bit (Packed) - - - - - Float 64-bit (Packed) - - - - - Unsigned 8-bit (Planar) - - - - - Signed 16-bit (Planar) - - - - - Signed 32-bit (Planar) - - - - - Signed 64-bit (Planar) - - - - - Float 32-bit (Planar) - - - - - Float 64-bit (Planar) - - - - - Config - - - Error loading settings - 載入設定時發生錯誤 - - - - Failed to load application settings. This session will use defaults. + AudioParams < /name> +< message > + + % 1 +Hz < /source> +< translation > % 1 +赫茲 < /translation> +< /message> +< message > + +Mono < /source> +< translation > 單聲道 < /translation> +< /message> +< message > + +Stereo < /source> +< translation > 立體聲 < /translation> +< /message> +< message > + +2.1 < /source> +< translation > 2.1 < /translation> +< /message> +< message > + +5.1 < /source> +< translation > 5.1 < /translation> +< /message> +< message > + +7.1 < /source> +< translation > 7.1 < /translation> +< /message> +< message > + + + Unknown(0 +x % 1 +) + +< translation > 未知(0 +x % 1 +) + +< /message> +< message > + + Unsigned +8 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Packed) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unsigned +8 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +16 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Signed +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +32 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Float +64 - bit(Planar) < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +Config < /name> +< message > + + Error +loading +settings < /source> +< translation > 載入設定時發生錯誤 < /translation> +< /message> +< message > + + Failed +to +load +application +settings.This +session +will +use +defaults. -%1 - 載入應用程式設定失敗。此工作階段將使用預設設定。 +% 1 < /source> +< translation > 載入應用程式設定失敗。此工作階段將使用預設設定。 -%1 - - - - Error saving settings - 儲存設定時發生錯誤 - - - - Failed to save application settings. The application may lack write permissions for this location. - - - - Failed to save application settings. The application may lack write permissions to this location. - 儲存應用程式設定失敗。應用程式可能沒有寫入至此位置的權限。 - - - - Footage - - %1 FPS - %1 FPS - - - %1 Hz - %1 赫茲 - - - Filename: %1 - 檔名:%1 - - - This footage is not valid for use - 此素材無效 - - - - ImportTool - - - Don't ask me again - 不要再詢問我 - - - - No Active Sequence - No Active Sequence - - - - No sequence is currently open. Would you like to create one? - No sequence is currently open. Would you like to create one? - - - - Automatically Detect Parameters From Footage - 自動從素材中偵測參數 - - - - Set Parameters Manually - 手動設置參數 - - - - MoveItemCommand - - Move Item - 移動項目 - - - - NodeCopyPasteWidget - - Error pasting nodes - 貼上節點時發生錯誤 - - - Failed to paste nodes: %1 - 無法貼上節點:%1 - - - - NodeFactory - - - None - - - - - NodeValue - - - None - - - - - Integer - 整數 - - - - Float - 浮點數 - - - - Rational - 有理數 - - - - Boolean - 布林值 - - - - Color - 顏色 - - - - Matrix - 矩陣 - - - - Text - 文字 - - - - Font - 字體 - - - - File - 檔案 - - - - Texture - 材質 - - - - Samples - 取樣 - - - - Vector 2D - 向量 2D - - - - Vector 3D - 向量 3D - - - - Vector 4D - 向量 4D - - - - Bezier - 貝茲曲線 - - - - Video Parameters - - - - - Audio Parameters - - - - - Subtitle Parameters - - - - - Binary - - - - - Unknown - 未知 - - - - NodeViewContext - - - %1 [%2] :: %3 - %4 - - - - - NodeViewItem - - - Output - 輸出 - - - - %1... - %1... - - - - OlivePluginInstance - - - Change %1 - 變更 %1 - - - - %1 (+%2) - %1(+%2) - - - - Edit Parameters - 編輯參數 - - - - PresetManager - - - Save Preset - 儲存預設檔 - - - - Set preset name: - 設定預設檔名稱: - - - - Invalid preset name - 預設檔名稱無效 - - - - You must enter a preset name - 您必須輸入預設檔名稱 - - - - Preset exists - 預設檔已存在 - - - - A preset with this name already exists. Would you like to replace it? - 已有相同名稱的預設檔存在!您是否要取代它? - - - - QObject - - - Common Media Files - - - - - Video Files - - - - - Audio Files - - - - - Image Files - - - - - Plugin Error - - - - - Plugin %1 failed because connected inputs have different frame rates. -The last operation has been undone. - - - - - Plugin %1 encountered an error: %2 -The last operation has been undone. - - - - - Plugin %1 failed to get clip preferences. -The last operation has been undone. - - - - - RatioDialog - - - Enter custom ratio (e.g. "4:3", "16/9", etc.): - 輸入自訂長寬比 (例如 "4:3"、"16/9"...) - - - - Invalid custom ratio - 自訂長寬比無效 - - - - Failed to parse "%1" into an aspect ratio. Please format a rational fraction with a ':' or a '/' separator. - 無法將 "%1" 剖析成長寬比。請用 ':' 或 '/' 來分隔有理數。 - - - - RenameItemCommand - - Rename Item - 重新命名項目 - - - - Sequence - - %1 FPS - %1 FPS - - - - Serializer - - - %1 on line %2 - - - - - Stream - - %1: Audio - %2 Channels, %3Hz - %1:音訊 - %2 通道,%3 Hz - - - %1: Unknown - %1:未知 - - - %1: Image - %2x%3 - %1:圖片 - %2x%3 - - - %1: Video - %2x%3 - %1:影片 - %2x%3 - - - - TimelineViewBlockItem - - %1 +% +1 < /translation> +< /message> +< message > + + Error +saving +settings < /source> +< translation > 儲存設定時發生錯誤 < /translation> +< /message> +< message > + + Failed +to +save +application +settings.The +application +may +lack +write +permissions +for this location. < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +save +application +settings.The +application +may +lack +write +permissions +to +this +location. < /source> +< translation +type = "vanished" > 儲存應用程式設定失敗。應用程式可能沒有寫入至此位置的權限。 +< /message> +< /context> +< context > +Footage < /name> +< message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< message > + % 1 +Hz < /source> +< translation +type = "vanished" > % 1 +赫茲 < /translation> +< /message> +< message > +Filename +: % +1 < /source> +< translation +type = "vanished" > 檔名:% +1 < /translation> +< /message> +< message > +This +footage +is +not +valid +for use < /source> + < translation type = "vanished" > 此素材無效 < /translation> +< /message> +< /context> +< context > +ImportTool < /name> +< message > + + Don & apos; +t +ask +me +again < /source> +< translation > 不要再詢問我 < /translation> +< /message> +< message > + + No +Active +Sequence < /source> +< translation +type = "unfinished" > No +Active +Sequence < /translation> +< /message> +< message > + + No +sequence +is +currently +open.Would +you +like +to +create +one ? + < translation type = "unfinished" > No +sequence +is +currently +open.Would +you +like +to +create +one ? +< /message> +< message > + + Automatically +Detect +Parameters +From +Footage < /source> +< translation > 自動從素材中偵測參數 < /translation> +< /message> +< message > + + Set +Parameters +Manually < /source> +< translation > 手動設置參數 < /translation> +< /message> +< /context> +< context > +MoveItemCommand < /name> +< message > +Move +Item < /source> +< translation +type = "vanished" > 移動項目 < /translation> + < /message> + < /context> + < context > + NodeCopyPasteWidget < /name> + < message > + Error +pasting +nodes < /source> +< translation +type = "vanished" > 貼上節點時發生錯誤 < /translation> + < /message> + < message > + Failed +to +paste +nodes: % +1 < /source> +< translation +type = "vanished" > 無法貼上節點:% +1 < /translation> +< /message> +< /context> +< context > +NodeFactory < /name> +< message > + +None < /source> +< translation > 無 < /translation> +< /message> +< /context> +< context > +NodeValue < /name> +< message > + + None < /source> + < translation +type = "unfinished" > 無 < /translation> +< /message> +< message > + + Integer < /source> + < translation +type = "unfinished" > 整數 < /translation> +< /message> +< message > + + Float < /source> + < translation +type = "unfinished" > 浮點數 < /translation> +< /message> +< message > + + Rational < /source> + < translation +type = "unfinished" > 有理數 < /translation> +< /message> +< message > + + Boolean < /source> + < translation +type = "unfinished" > 布林值 < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > 顏色 < /translation> +< /message> +< message > + + Matrix < /source> + < translation +type = "unfinished" > 矩陣 < /translation> +< /message> +< message > + + Text < /source> + < translation +type = "unfinished" > 文字 < /translation> +< /message> +< message > + + Font < /source> + < translation +type = "unfinished" > 字體 < /translation> +< /message> +< message > + + File < /source> + < translation +type = "unfinished" > 檔案 < /translation> +< /message> +< message > + + Texture < /source> + < translation +type = "unfinished" > 材質 < /translation> +< /message> +< message > + + Samples < /source> + < translation +type = "unfinished" > 取樣 < /translation> +< /message> +< message > + + Vector +2 +D < /source> +< translation +type = "unfinished" > 向量 +2 +D < /translation> +< /message> +< message > + + Vector +3 +D < /source> +< translation +type = "unfinished" > 向量 +3 +D < /translation> +< /message> +< message > + + Vector +4 +D < /source> +< translation +type = "unfinished" > 向量 +4 +D < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > 貝茲曲線 < /translation> +< /message> +< message > + + Video +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Subtitle +Parameters < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Binary < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > 未知 < /translation> +< /message> +< /context> +< context > +NodeViewContext < /name> +< message > + + % 1 [ % 2 +] +:: % 3 - % 4 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +NodeViewItem < /name> +< message > + + Output < /source> + < translation +type = "unfinished" > 輸出 < /translation> +< /message> +< message > + + % 1... < /source> +< translation > % 1... < /translation> +< /message> +< /context> +< context > +OlivePluginInstance < /name> +< message > + +Change % 1 < /source> +< translation > 變更 % 1 < /translation> +< /message> +< message > + + % 1(+ % 2) < /source> + < translation > % 1(+ % 2) +< /message> +< message > + + Edit +Parameters < /source> +< translation > 編輯參數 < /translation> +< /message> +< /context> +< context > +PresetManager < /name> +< message > + + Save +Preset < /source> +< translation > 儲存預設檔 < /translation> +< /message> +< message > + + Set +preset +name: +< translation > 設定預設檔名稱: +< /message> +< message > + + Invalid +preset +name < /source> +< translation > 預設檔名稱無效 < /translation> +< /message> +< message > + + You +must +enter +a +preset +name < /source> +< translation > 您必須輸入預設檔名稱 < /translation> +< /message> +< message > + + Preset +exists < /source> +< translation > 預設檔已存在 < /translation> +< /message> +< message > + + A +preset +with this name +already +exists.Would +you +like +to +replace +it ? + < translation > 已有相同名稱的預設檔存在!您是否要取代它? +< /message> +< /context> +< context > +QObject < /name> +< message > + + Common +Media +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Image +Files < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +because +connected +inputs +have +different +frame +rates.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +encountered +an +error: % +2 +The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Plugin % 1 +failed +to +get +clip +preferences.The +last +operation +has +been +undone. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +RatioDialog < /name> +< message > + + Enter +custom +ratio(e.g. & quot; +4 +: +3 & quot; +, & +quot; +16 / 9 & quot; +, +etc. +): + +< translation > 輸入自訂長寬比(例如 & quot; +4 +: +3 & quot;、& +quot; +16 / 9 & quot; +...) + +< /message> +< message > + + Invalid +custom +ratio < /source> +< translation > 自訂長寬比無效 < /translation> +< /message> +< message > + + Failed +to +parse & quot; +% +1 & quot; +into +an +aspect +ratio.Please +format +a +rational +fraction +with a & apos; +:& +apos; +or +a & apos; +/' separator. +無法將 & quot; +% +1 & quot; +剖析成長寬比。請用 & apos; +:& +apos; +或 & apos; +/' 來分隔有理數。 + +< /context> +< context > +RenameItemCommand < /name> +< message > +Rename +Item < /source> +< translation +type = "vanished" > 重新命名項目 < /translation> + < /message> + < /context> + < context > + Sequence < /name> + < message > + % 1 +FPS < /source> +< translation +type = "vanished" > % 1 +FPS < /translation> +< /message> +< /context> +< context > +Serializer < /name> +< message > + + % 1 +on +line % 2 < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + Stream < /name> + < message > + % 1 +: +Audio - % 2 +Channels, +% +3 +Hz < /source> +< translation +type = "vanished" > % 1:音訊 - % 2 +通道,% +3 +Hz < /translation> +< /message> +< message > + % 1 +: +Unknown < /source> +< translation +type = "vanished" > % 1:未知 < /translation> +< /message> +< message > + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "vanished" > % 1:圖片 - % 2 +x % 3 < /translation> +< /message> +< message > + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "vanished" > % 1:影片 - % 2 +x % 3 < /translation> +< /message> +< /context> +< context > +TimelineViewBlockItem < /name> +< message > + % 1 -In: %2 -Out: %3 -Length: %4 - %1 +In: % +2 +Out: % +3 +Length: % +4 < /source> +< translation +type = "vanished" > % 1 -輸入:%2 -輸出:%3 -長度:%4 - - - - Tool - - - Empty - - - - - Bars - Bars - - - - Shape - - - - - Solid - Solid - - - - Title - 標題 - - - - Tone - 色調 - - - - Subtitle - - - - - Unknown - 未知 - - - - UndoStack - - - Undo %1 - - - - - Redo %1 - - - - - VideoParams - - - Full - 完整 - - - - 1/%1 - 1/%1 - - - - 8-bit - 8 位元 - - - - 10-bit Packed - - - - - 16-bit Integer - 16 位元整數 - - - - Half-Float (16-bit) - 半浮點數(16 位元) - - - - Full-Float (32-bit) - 全浮點數(32 位元) - - - - Unknown (0x%1) - 未知 (0x%1) - - - - %1 FPS - %1 FPS - - - - Square Pixels (%1) - Square Pixels (%1) - - - - NTSC Standard (%1) - NTSC 標準 (%1) - - - - NTSC Widescreen (%1) - NTSC 寬螢幕 (%1) - - - - PAL Standard (%1) - PAL 標準 (%1) - - - - PAL Widescreen (%1) - PAL 寬螢幕 (%1) - - - - HD Anamorphic 1080 (%1) - HD Anamorphic 1080 (%1) - - - - main - - - No project filename set to decompress - - - - - Failed to open file "%1" - - - - - Decompressing project... - - - - - - Failed to decompress, project may be corrupt - - - - - Outputting to file "%1" - - - - - Failed to open output file "%1" - - - - - Decompressed successfully - - - - - Show this help text - 顯示此說明文字 - - - - Show application version - 顯示應用程式版本 - - - - Start in full-screen mode - 以全螢幕模式啟動 - - - - Export only (No GUI) - 僅匯出 (無介面) - - - - Override language with file - Override language with file - - - - qm-file - qm-file - - - - Decompress project file (No GUI) - - - - - Launch with debug console - - - - - Project to open on startup - 啟動時要開啟的專案 - - - - Don't load plugins - - - - - Your computer's graphics driver does not appear to support framebuffers. This most likely means either your graphics driver is not up-to-date or your graphics card is too old to run Oak Video Editor. +輸入:% +2 +輸出:% +3 +長度:% +4 < /translation> +< /message> +< /context> +< context > +Tool < /name> +< message > + +Empty < /source> +< translation > 空 < /translation> +< /message> +< message > + + Bars < /source> + < translation +type = "unfinished" > Bars < /translation> +< /message> +< message > + + Shape < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Solid < /source> + < translation +type = "unfinished" > Solid < /translation> +< /message> +< message > + +Title < /source> +< translation > 標題 < /translation> +< /message> +< message > + +Tone < /source> +< translation > 色調 < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< /context> +< context > +UndoStack < /name> +< message > + + Undo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Redo % 1 < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +VideoParams < /name> +< message > + + Full < /source> + < translation +type = "unfinished" > 完整 < /translation> +< /message> +< message > + + 1 / % 1 < /source> + < translation +type = "unfinished" > 1 / % 1 < /translation> +< /message> +< message > + + 8 - bit < /source> + < translation > 8 +位元 < /translation> +< /message> +< message > + + 10 - bit +Packed < /source> +< translation +type = "unfinished" > +< /message> +< message > + + 16 - bit +Integer < /source> +< translation > 16 +位元整數 < /translation> +< /message> +< message > + + Half - Float(16 - bit) < /source> + < translation > 半浮點數(16 +位元) +< /message> +< message > + + Full - Float(32 - bit) < /source> + < translation > 全浮點數(32 +位元) +< /message> +< message > + + Unknown(0 +x % 1 +) + +< translation > 未知(0 +x % 1 +) + +< /message> +< message > + + % 1 +FPS < /source> +< translation > % 1 +FPS < /translation> +< /message> +< message > + + Square +Pixels( % 1 +) + +< translation +type = "unfinished" > Square +Pixels( % 1 +) + +< /message> +< message > + + NTSC +Standard( % 1 +) + +< translation > NTSC +標準( % 1 +) + +< /message> +< message > + + NTSC +Widescreen( % 1 +) + +< translation > NTSC +寬螢幕( % 1 +) + +< /message> +< message > + + PAL +Standard( % 1 +) + +< translation > PAL +標準( % 1 +) + +< /message> +< message > + + PAL +Widescreen( % 1 +) + +< translation > PAL +寬螢幕( % 1 +) + +< /message> +< message > + + HD +Anamorphic +1080( % 1 +) + +< translation +type = "unfinished" > HD +Anamorphic +1080( % 1 +) + +< /message> +< /context> +< context > +main < /name> +< message > + + No +project +filename +set +to +decompress < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressing +project +... + +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +decompress, project +may +be +corrupt < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Outputting +to +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +output +file & quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< message > + + Decompressed +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +this +help +text < /source> +< translation > 顯示此說明文字 < /translation> +< /message> +< message > + + Show +application +version < /source> +< translation > 顯示應用程式版本 < /translation> +< /message> +< message > + + Start in full - screen +mode < /source> +< translation > 以全螢幕模式啟動 < /translation> +< /message> +< message > + + Export +only(No +GUI +) + +< translation > 僅匯出(無介面) < /translation> +< /message> +< message > + + Override +language +with file < /source> +< translation type = "unfinished" > Override +language +with file < /translation> +< /message> +< message > + +qm - file < /source> +< translation > qm - file < /translation> +< /message> +< message > + + Decompress +project +file(No +GUI +) + +< translation +type = "unfinished" > +< /message> +< message > + + Launch +with debug console < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Project +to +open +on +startup < /source> +< translation > 啟動時要開啟的專案 < /translation> +< /message> +< message > + + Don & apos; +t +load +plugins < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Your +computer & apos; +s +graphics +driver +does +not +appear +to +support +framebuffers.This +most +likely +means +either +your +graphics +driver +is +not +up - to - date +or +your +graphics +card +is +too +old +to +run +Oak +Video +Editor.Please +update +your +graphics +driver +to +the +latest +version +and +try +again.Current +driver +information: % +1 % 2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AV1Section < /name> +< message > + + Preset +: + +< translation +type = "unfinished" > 預設: +< /message> +< message > + + This +parameter +governs +the +efficiency / encode - time +trade - off.Lower +presets +will +result in an +output +with better quality +for a given +file +size, but +will +take +longer +to +encode.Higher +presets +can +result in a +very +fast +encode, but +will +make +some +compromises +on +visual +quality +for a given +crf +value. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation +type = "unfinished" > 壓縮方式: +< /message> +< message > + + This +parameter +governs +the +quality / size +trade - off.Higher +CRF +values +will +result in a +final +output +that +takes +less +space, but +begins +to +lose +detail.Lower +CRF +values +retain +more +detail +at +the +cost +of +larger +file +sizes.The +possible +range +of +CRF in SVT - AV1 +is +1 - 63. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > Constant +Rate +Factor < /translation> +< /message> +< /context> +< context > +olive::AboutDialog < /name> +< message > + + Welcome +to % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + +About % 1 < /source> +< translation > 關於 % 1 < /translation> +< /message> +< message > + + Oak +Video +Editor +is +a +free +open +source +non - linear +video +editor.This +software +is +licensed +under +the +GNU +GPL +Version +3. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +project +is +a +fork +of < a +href = +& +quot; +https://github.com/olive-editor/olive">Olive Video Editor</a>. + + < /message> + < message > + + <b>Oak +Video +Editor +relies +on +support +from +the +community +to +continue its +development. < /b> + +< /message> +< message > + + Oak +Video +Editor +wouldn & apos; +t +be +possible +without +the +support +of +gracious +donations +from +the +following +people. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + <html> % 1 +If +you +like +this +project, please +consider +making +a +one - time +donation +or +pledging +monthly +to +support +its +development. < /html> + +< /message> +< message > + + Don & apos; +t +show +this +message +again < /source> +< translation +type = "unfinished" > + < /message> + < message > + Olive +is +a +non - linear +video +editor.This +software +is +free +and +protected +by +the +GNU +GPL. < /source> +< translation +type = "vanished" > Olive +是非線性的影片剪輯軟體。此軟體為免費且受 +GNU +通用公眾授權條款保護。 +< /message> +< message > +Olive +Team +is +obliged +to +inform +users +that +Olive +source +code +is +available +for download from +its +website. < /source> +< translation +type = "vanished" > Olive +團隊有義務通知使用者 +Olive +原始碼可從其網站下載。 +< /message> +< /context> +< context > +olive::ActionSearch < /name> +< message > + + Search +for action... + +< translation +type = "unfinished" > Search +for action... + +< /message> +< /context> +< context > +olive::AudioInput < /name> +< message > +Audio +Input < /source> +< translation +type = "vanished" > 音訊輸入 < /translation> + < /message> + < message > + Audio < /source> + < translation +type = "vanished" > 音訊 < /translation> + < /message> + < message > + Import +an +audio +footage +stream. < /source> +< translation +type = "obsolete" > Import +an +audio +footage +stream. < /translation> +< /message> +< /context> +< context > +olive::AudioManager < /name> +< message > + + No +output +device +is +set < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::AudioMonitorPanel < /name> +< message > + + Audio +Monitor < /source> +< translation +type = "unfinished" > Audio +Monitor < /translation> +< /message> +< /context> +< context > +olive::AutoRecoveryDialog < /name> +< message > + + Auto - Recovery < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Load < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::BezierWidget < /name> +< message > + + Center +: + +< translation +type = "unfinished" > +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > 貝茲曲線 < /translation> +< /message> +< message > + + In +: + +< translation +type = "unfinished" > 進入點: +< /message> +< message > + + Out +: + +< translation +type = "unfinished" > 退出點: +< /message> +< /context> +< context > +olive::Block < /name> +< message > + + Length < /source> + < translation > 長度 < /translation> + < /message> + < message > + Media +In < /source> +< translation +type = "vanished" > 媒體輸入 < /translation> +< /message> +< message > + + Enabled < /source> + < translation > 已啟用 < /translation> + < /message> + < message > + Speed < /source> + < translation +type = "vanished" > 速度 < /translation> +< /message> +< /context> +< context > +olive::BlurFilterNode < /name> +< message > + +Blur < /source> +< translation > 模糊 < /translation> +< /message> +< message > + + Blurs +an +image. < /source> +< translation > 模糊圖片。 +< /message> +< message > + +Input < /source> +< translation > 輸入 < /translation> +< /message> +< message > + +Method < /source> +< translation > 方式 < /translation> +< /message> +< message > + + Box < /source> + < translation +type = "unfinished" > Box < /translation> +< /message> +< message > + +Gaussian < /source> +< translation > 高斯 < /translation> +< /message> +< message > + + Directional < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Radial < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Radius < /source> +< translation > 半徑 < /translation> +< /message> +< message > + +Horizontal < /source> +< translation > 水平 < /translation> +< /message> +< message > + +Vertical < /source> +< translation > 垂直 < /translation> +< /message> +< message > + + Repeat +Edge +Pixels < /source> +< translation +type = "unfinished" > Repeat +Edge +Pixels < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > 方向 < /translation> +< /message> +< message > + + Center < /source> + < translation +type = "unfinished" > 中間 < /translation> +< /message> +< /context> +< context > +olive::ChromaKeyNode < /name> +< message > + + Chroma +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +from +the +chroma +of +a +selected +color. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 輸入 < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Upper +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Lower +Tolerance < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invert +Mask < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CineformSection < /name> +< message > + + Quality +: + +< translation +type = "unfinished" > 品質: +< /message> +< message > + + Film +Scan +3 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1.5 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 + +< translation +type = "unfinished" > +< /message> +< message > + + Film +Scan +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + High + + < translation +type = "unfinished" > +< /message> +< message > + + High < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium + + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Low + + < translation +type = "unfinished" > +< /message> +< message > + + Low < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ClipBlock < /name> +< message > + + Video +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Audio +Clip < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Clip < /source> +< translation > 片段 < /translation> +< /message> +< message > + + A +time - based +node +that +represents +a +media +source. < /source> +< translation +type = "unfinished" > A +time - based +node +that +represents +a +media +source. < /translation> +< /message> +< message > + +Buffer < /source> +< translation > 緩衝 < /translation> +< /message> +< message > + + Media +In < /source> +< translation +type = "unfinished" > 媒體輸入 < /translation> +< /message> +< message > + + Speed < /source> + < translation +type = "unfinished" > 速度 < /translation> +< /message> +< message > + + Reverse < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Maintain +Audio +Pitch < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Loop < /source> + < translation +type = "unfinished" > 循環 < /translation> +< /message> +< message > + + None < /source> + < translation +type = "unfinished" > 無 < /translation> +< /message> +< message > + + Clamp < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorCoding < /name> +< message > + + Red < /source> + < translation +type = "unfinished" > 紅 < /translation> +< /message> +< message > + + Maroon < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Orange < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Brown < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Yellow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Oak < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Lime < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > 綠 < /translation> +< /message> +< message > + + Cyan < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Teal < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > 藍 < /translation> +< /message> +< message > + + Navy < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Pink < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Purple < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Silver < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Gray < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorDialog < /name> +< message > + + Select +Color < /source> +< translation > 選取顏色 < /translation> +< /message> +< /context> +< context > +olive::ColorDifferenceKeyNode < /name> +< message > + + Color +Difference +Key < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +simple +color +key +based +on +the +distance +of +one +color +from +other +colors. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 輸入 < /translation> +< /message> +< message > + + Garbage +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Core +Matte < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > 綠 < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > 藍 < /translation> +< /message> +< message > + + Shadows < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Highlights < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Show +Mask +Only < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorLabelMenu < /name> +< message > + + Color < /source> + < translation +type = "unfinished" > 顏色 < /translation> +< /message> +< /context> +< context > +olive::ColorSpaceChooser < /name> +< message > + + Color +Management < /source> +< translation > 色彩管理 < /translation> +< /message> +< message > + + Input +: + +< translation > 輸入: +< /message> +< message > + + Color +Space: +< translation > 色彩空間: +< /message> +< message > + + Display +: + +< translation > 顯示: +< /message> +< message > + + View +: + +< translation > 檢視: +< /message> +< message > + + Look +: + +< translation +type = "unfinished" > Look +: + +< /message> +< message > + +(None) < /source> +< translation > (無) < /translation> +< /message> +< /context> +< context > +olive::ColorSwatchChooser < /name> +< message > + + Save +Color +Here < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +To +Default < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesTab < /name> +< message > + + Use +legacy(8 - bit) +values < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Red < /source> +< translation > 紅 < /translation> +< /message> +< message > + +Green < /source> +< translation > 綠 < /translation> +< /message> +< message > + +Blue < /source> +< translation > 藍 < /translation> +< /message> +< message > + + Web < /source> + < translation +type = "unfinished" > +< /message> +< message > + + (Invalid) < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ColorValuesWidget < /name> +< message > + +Preview < /source> +< translation > 預覽 < /translation> +< /message> +< message > + +Input < /source> +< translation > 輸入 < /translation> +< /message> +< message > + +Reference < /source> +< translation > 參照 < /translation> +< /message> +< message > + +Display < /source> +< translation > 顯示 < /translation> +< /message> +< /context> +< context > +olive::ConfigDialogBase < /name> +< message > + + Set +Configuration < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ConformTask < /name> +< message > + + Conforming +Audio % 1 +:% +2 < /source> +< translation +type = "unfinished" > Conforming +Audio % 1 +:% +2 < /translation> +< /message> +< message > + + Failed +to +open +decoder +for audio conform < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Core < /name> +< message > + + Import +error < /source> +< translation > 匯入錯誤 < /translation> +< /message> +< message > + + Nothing +to +import -Please update your graphics driver to the latest version and try again. + +< translation > 沒有要匯入的內容 < /translation> +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Skipped % 1 +file(s) +that +are +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > +< /message> +< message > + + Importing +... + +< translation > 正在匯入 +... + +< /message> +< message > + + Import +footage +... + +< translation > 匯入素材 +... + +< /message> +< message > + + Failed +to +import footage -Current driver information: %1 %2 %3 - - - - - olive::AV1Section - - - Preset: - 預設: - - - - This parameter governs the efficiency/encode-time trade-off. -Lower presets will result in an output with better quality for a given file size, but will take longer to encode. -Higher presets can result in a very fast encode, but will make some compromises on visual quality for a given crf value. - - - - - Compression Method: - 壓縮方式: - - - - This parameter governs the quality/size trade-off. -Higher CRF values will result in a final output that takes less space, but begins to lose detail. -Lower CRF values retain more detail at the cost of larger file sizes. -The possible range of CRF in SVT-AV1 is 1-63. - - - - - Constant Rate Factor - Constant Rate Factor - - - - olive::AboutDialog - - - Welcome to %1 - - - - - About %1 - 關於 %1 - - - - Oak Video Editor is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. - - - - - This project is a fork of <a href="https://github.com/olive-editor/olive">Olive Video Editor</a>. - - - - - <b>Oak Video Editor relies on support from the community to continue its development.</b> - - - - - Oak Video Editor wouldn't be possible without the support of gracious donations from the following people. - - - - - <html>%1 If you like this project, please consider making a one-time donation or pledging monthly to support its development.</html> - - - - - Don't show this message again - - - - Olive is a non-linear video editor. This software is free and protected by the GNU GPL. - Olive 是非線性的影片剪輯軟體。此軟體為免費且受 GNU 通用公眾授權條款保護。 - - - Olive Team is obliged to inform users that Olive source code is available for download from its website. - Olive 團隊有義務通知使用者 Olive 原始碼可從其網站下載。 - - - - olive::ActionSearch - - - Search for action... - Search for action... - - - - olive::AudioInput - - Audio Input - 音訊輸入 - - - Audio - 音訊 - - - Import an audio footage stream. - Import an audio footage stream. - - - - olive::AudioManager - - - No output device is set - - - - - olive::AudioMonitorPanel - - - Audio Monitor - Audio Monitor - - - - olive::AutoRecoveryDialog - - - Auto-Recovery - - - - - Load - - - - - olive::BezierWidget - - - Center: - - - - - Bezier - 貝茲曲線 - - - - In: - 進入點: - - - - Out: - 退出點: - - - - olive::Block - - - Length - 長度 - - - Media In - 媒體輸入 - - - - Enabled - 已啟用 - - - Speed - 速度 - - - - olive::BlurFilterNode - - - Blur - 模糊 - - - - Blurs an image. - 模糊圖片。 - - - - Input - 輸入 - - - - Method - 方式 - - - - Box - Box - - - - Gaussian - 高斯 - - - - Directional - - - - - Radial - - - - - Radius - 半徑 - - - - Horizontal - 水平 - - - - Vertical - 垂直 - - - - Repeat Edge Pixels - Repeat Edge Pixels - - - - Direction - 方向 - - - - Center - 中間 - - - - olive::ChromaKeyNode - - - Chroma Key - - - - - A simple color key based on the distance from the chroma of a selected color. - - - - - Input - 輸入 - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Shadows - - - - - Highlights - - - - - Upper Tolerance - - - - - Lower Tolerance - - - - - Invert Mask - - - - - Show Mask Only - - - - - olive::CineformSection - - - Quality: - 品質: - - - - Film Scan 3+ - - - - - Film Scan 3 - - - - - Film Scan 2+ - - - - - Film Scan 2 - - - - - Film Scan 1.5 - - - - - Film Scan 1+ - - - - - Film Scan 1 - - - - - High+ - - - - - High - - - - - Medium+ - - - - - Medium - - - - - Low+ - - - - - Low - - - - - olive::ClipBlock - - - Video Clip - - - - - Audio Clip - - - - - Clip - 片段 - - - - A time-based node that represents a media source. - A time-based node that represents a media source. - - - - Buffer - 緩衝 - - - - Media In - 媒體輸入 - - - - Speed - 速度 - - - - Reverse - - - - - Maintain Audio Pitch - - - - - - Loop - 循環 - - - - None - - - - - Clamp - - - - - olive::ColorCoding - - - Red - - - - - Maroon - - - - - Orange - - - - - Brown - - - - - Yellow - - - - - Oak - - - - - Lime - - - - - Green - - - - - Cyan - - - - - Teal - - - - - Blue - - - - - Navy - - - - - Pink - - - - - Purple - - - - - Silver - - - - - Gray - - - - - olive::ColorDialog - - - Select Color - 選取顏色 - - - - olive::ColorDifferenceKeyNode - - - Color Difference Key - - - - - A simple color key based on the distance of one color from other colors. - - - - - Input - 輸入 - - - - Garbage Matte - - - - - Core Matte - - - - - Key Color - - - - - Green - - - - - Blue - - - - - Shadows - - - - - Highlights - - - - - Show Mask Only - - - - - olive::ColorLabelMenu - - - Color - 顏色 - - - - olive::ColorSpaceChooser - - - Color Management - 色彩管理 - - - - Input: - 輸入: - - - - Color Space: - 色彩空間: - - - - Display: - 顯示: - - - - View: - 檢視: - - - - Look: - Look: - - - - (None) - (無) - - - - olive::ColorSwatchChooser - - - Save Color Here - - - - - Reset To Default - - - - - olive::ColorValuesTab - - - Use legacy (8-bit) values - - - - - Red - - - - - Green - - - - - Blue - - - - - Web - - - - - (Invalid) - - - - - olive::ColorValuesWidget - - - Preview - 預覽 - - - - Input - 輸入 - - - - Reference - 參照 - - - - Display - 顯示 - - - - olive::ConfigDialogBase - - - Set Configuration - - - - - olive::ConformTask - - - Conforming Audio %1:%2 - Conforming Audio %1:%2 - - - - Failed to open decoder for audio conform - - - - - olive::Core - - - Import error - 匯入錯誤 - - - - Nothing to import - 沒有要匯入的內容 - - - - Unsupported media - - - - - Skipped %1 file(s) that are not allowed by the current media type filter. - - - - - Importing... - 正在匯入... - - - - Import footage... - 匯入素材... - - - - Failed to import footage - 匯入素材失敗 - - - - Failed to find active Project panel - Failed to find active Project panel - - - - No Active Project - 沒有正在使用的專案 - - - - No project is currently open to set the properties for - No project is currently open to set the properties for - - - - Failed to create new folder - 無法建立新資料夾 - - - - - Failed to find active project - Failed to find active project - - - - New Folder - 新資料夾 - - - - Created New Folder - - - - - Failed to create new sequence - 無法建立新序列 - - - - Created New Sequence - - - - - Multi-Layer Image - - - - - The file '%1' has multiple layers. Would you like these layers to be separated across multiple tracks or merged into a single image? - - - - - Multiple Layers - - - - - Single Layer - - - - - Imported %1 File(s) - - - - - Possible image sequence detected - 偵測到可能的圖片序列 - - - - The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - 檔案 '%1' 看起來像是圖片序列的一部分。是否要按此方式匯入? - - - - You must specify a project file to export - 您必須指定要匯出的專案檔 - - - - Specified project does not exist - 指定的專案不存在 - - - - - Revert - - - - - This project has not yet been saved, therefore there is no last saved state to revert to. - - - - - The project "%1" is already open. By re-opening it, the project will revert to its last saved state. Any unsaved changes will be lost. Do you wish to continue? - - - - - This will revert the project "%1" back to its last saved state. All unsaved changes will be lost. Do you wish to continue? - - - - - - Auto-Recovery Error - - - - - Failed to save auto-recovery to "%1". Oak Video Editor may not have permission to this directory. - - - - - Saved to "%1" successfully - - - - - Oak Project - - - - - Oak Project (Uncompressed XML) - - - - - Renamed %1 Node(s) - - - - Project contains no sequences, nothing to export - 專案不包含序列,沒有東西可以匯出 - - - This project has multiple sequences. Which do you wish to export? - 此專案有多個序列。您要匯出哪一個? - - - Enter number (or %1 to cancel): - 輸入數字 (或 %1 以取消): - - - Invalid sequence number - 序列號碼無效 - - - Export succeeded - 已成功匯出 - - - Export failed: %1 - 匯出失敗:%1 - - - Project failed to load: %1 - 專案載入失敗:%1 - - - - Failed to open startup file - 無法開啟啟動檔 - - - - The project "%1" doesn't exist. A new project will be started instead. - 專案 "%1" 不存在。將啟動新專案。 - - - - - Missing OpenTimelineIO Libraries - OpenTimelineIO 庫缺失 - - - - - This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. - 此組建是在沒有 OpenTimelineIO 的情況下編譯的,因此無法開啟 OpenTimelineIO 檔案。 - - - Save Project - 儲存專案 - - - - - Error - 錯誤 - - - - This Sequence is empty. There is nothing to export. - 此序列為空。沒有東西可以匯出。 - - - - No valid sequence detected. + +< translation > 匯入素材失敗 < /translation> +< /message> +< message > + + Failed +to +find +active +Project +panel < /source> +< translation +type = "unfinished" > Failed +to +find +active +Project +panel < /translation> +< /message> +< message > + + No +Active +Project < /source> +< translation > 沒有正在使用的專案 < /translation> +< /message> +< message > + + No +project +is +currently +open +to +set +the +properties +for + < translation type = "unfinished" > No +project +is +currently +open +to +set +the +properties +for + < /message> + < message > + + Failed +to +create +new folder < /source> +< translation > 無法建立新資料夾 < /translation> +< /message> +< message > + + + Failed +to +find +active +project < /source> +< translation +type = "unfinished" > Failed +to +find +active +project < /translation> +< /message> +< message > + + New +Folder < /source> +< translation > 新資料夾 < /translation> +< /message> +< message > + + Created +New +Folder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +new sequence < /source> +< translation > 無法建立新序列 < /translation> +< /message> +< message > + + Created +New +Sequence < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Multi - Layer +Image < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +file & apos; +% +1 & apos; +has +multiple +layers.Would +you +like +these +layers +to +be +separated +across +multiple +tracks +or +merged +into +a +single +image ? + < translation type = "unfinished" > +< /message> +< message > + + Multiple +Layers < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Single +Layer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Imported % 1 +File(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Possible +image +sequence +detected < /source> +< translation > 偵測到可能的圖片序列 < /translation> +< /message> +< message > + + The +file & apos; +% +1 & apos; +looks +like +it +might +be +part +of +an +image +sequence.Would +you +like +to +import it -Make sure a sequence is loaded and it has a connected Viewer node. - No valid sequence detected. +as +such ? + < translation > 檔案 & apos; +% +1 & apos; +看起來像是圖片序列的一部分。是否要按此方式匯入? +< /message> +< message > + + You +must +specify +a +project +file +to +export + +< translation > 您必須指定要匯出的專案檔 < /translation> +< /message> +< message > + + Specified +project +does +not +exist < /source> +< translation > 指定的專案不存在 < /translation> +< /message> +< message > + + + Revert < /source> + < translation +type = "unfinished" > +< /message> +< message > + + This +project +has +not +yet +been +saved, therefore +there +is +no +last +saved +state +to +revert +to. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +project & quot; +% +1 & quot; +is +already +open.By +re - opening +it, the +project +will +revert +to +its +last +saved +state.Any +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + This +will +revert +the +project & quot; +% +1 & quot; +back +to +its +last +saved +state.All +unsaved +changes +will +be +lost.Do +you +wish +to +continue +? + < translation type = "unfinished" > +< /message> +< message > + + + Auto - Recovery +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +save +auto - recovery +to & quot; +% +1 & quot; +. +Oak +Video +Editor +may +not +have +permission +to +this +directory. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Saved +to & quot; +% +1 & quot; +successfully < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Oak +Project(Uncompressed +XML +) + +< translation +type = "unfinished" > +< /message> +< message > + + Renamed % 1 +Node(s) < /source> +< translation +type = "unfinished" > + < /message> + < message > + Project +contains +no +sequences, nothing +to +export + +< translation +type = "vanished" > 專案不包含序列,沒有東西可以匯出 < /translation> +< /message> +< message > +This +project +has +multiple +sequences.Which +do you wish +to +export +? + < translation type = "vanished" > 此專案有多個序列。您要匯出哪一個? +< /message> +< message > +Enter +number(or % 1 +to +cancel +): + +< translation +type = "vanished" > 輸入數字(或 % 1 +以取消 +): +< /message> +< message > +Invalid +sequence +number < /source> +< translation +type = "vanished" > 序列號碼無效 < /translation> + < /message> + < message > + Export +succeeded < /source> +< translation +type = "vanished" > 已成功匯出 < /translation> + < /message> + < message > + Export +failed: % +1 < /source> +< translation +type = "vanished" > 匯出失敗:% +1 < /translation> +< /message> +< message > +Project +failed +to +load: % +1 < /source> +< translation +type = "vanished" > 專案載入失敗:% +1 < /translation> +< /message> +< message > + + Failed +to +open +startup +file < /source> +< translation > 無法開啟啟動檔 < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.A +new project +will +be +started +instead. < /source> +< translation > 專案 & quot; +% +1 & quot; +不存在。將啟動新專案。 +< /message> +< message > + + + Missing +OpenTimelineIO +Libraries < /source> +< translation > OpenTimelineIO +庫缺失 < /translation> +< /message> +< message > + + + This +build +was +compiled +without +OpenTimelineIO +and +therefore +cannot +open +OpenTimelineIO +files. < /source> +< translation > 此組建是在沒有 +OpenTimelineIO +的情況下編譯的,因此無法開啟 +OpenTimelineIO +檔案。 +< /message> +< message > +Save +Project < /source> +< translation +type = "vanished" > 儲存專案 < /translation> +< /message> +< message > + + +Error < /source> +< translation > 錯誤 < /translation> +< /message> +< message > + + This +Sequence +is +empty.There +is +nothing +to +export. + +< translation > 此序列為空。沒有東西可以匯出。 +< /message> +< message > + + No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /source> +< translation +type = "unfinished" > No +valid +sequence +detected.Make +sure +a +sequence +is +loaded +and +it +has +a +connected +Viewer +node. < /translation> +< /message> +< message > +Olive +Project < /source> +< translation +type = "vanished" > Olive +專案 < /translation> +< /message> +< message > + +OpenTimelineIO < /source> +< translation > OpenTimelineIO < /translation> +< /message> +< message > + + All +Supported +Projects < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +projects +had +unsaved +changes +when +Oak +Video +Editor +forcefully +quit.Would +you +like +to +load +them ? + < translation type = "unfinished" > +< /message> +< message > + + Found +auto - recoveries +but +failed +to +load +the +auto - recovery +index.Auto - recover +projects +will +have +to +be +opened +manually.Your +recoverable +projects +are +still +available +at: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +following +project +versions +have +been +auto - saved +: + +< translation +type = "unfinished" > +< /message> +< message > + + Disk +Cache +Full < /source> +< translation +type = "unfinished" > +< /message> +< message > + + The +disk +cache +is +currently +full +and +Oak +Video +Editor +is +having +to +delete old +frames +to +keep +it +within +the +limits +set in the +Disk +preferences.This +will +result in SIGNIFICANTLY +reduced +cache +performance.To +remedy +this, please +do one of +the +following: -Make sure a sequence is loaded and it has a connected Viewer node. - - - Olive Project - Olive 專案 - - - - OpenTimelineIO - OpenTimelineIO - - - - All Supported Projects - - - - - The following projects had unsaved changes when Oak Video Editor forcefully quit. Would you like to load them? - - - - - Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. + 1. +Manually +clear +the +disk +cache in Disk +preferences. +2. +Increase +the +maximum +disk +cache +size in Disk +preferences. +3. +Reduce +usage +of +the +disk +cache(e.g.disable +auto - cache +or +only +cache +specific +sections +of +your +sequence +). + +< translation +type = "unfinished" > +< /message> +< message > + + Save +Project +As < /source> +< translation > 另存專案為 < /translation> +< /message> +< message > + + Load +Project < /source> +< translation > 載入專案 < /translation> +< /message> +< message > + + Label +Node < /source> +< translation > 標記節點 < /translation> +< /message> +< message > + + Set +node +label < /source> +< translation > 設置節點標籤 < /translation> +< /message> +< message > + +Sequence % 1 < /source> +< translation > 序列 % 1 < /translation> +< /message> +< message > + + Cannot +open +recent +project < /source> +< translation > 無法開啟最近專案 < /translation> +< /message> +< message > + + The +project & quot; +% +1 & quot; +doesn & apos; +t +exist.Would +you +like +to +remove +this +file +from +the +recent +list ? + < translation > 專案 & quot; +% +1 & quot; +不存在。是否要從最近清單中刪除此檔案? +< /message> +< message > + + Unsaved +Changes < /source> +< translation > 未儲存的變更 < /translation> +< /message> +< message > + + The +project & apos; +% +1 & apos; +has +unsaved +changes.Would +you +like +to +save +them ? + < translation > 專案 & apos; +% +1 & apos; +含有尚未儲存的變更。您要儲存嗎? +< /message> +< message > + + Save < /source> + < translation > 儲存 < /translation> + < /message> + < message > + Save +All < /source> +< translation +type = "vanished" > 儲存全部 < /translation> +< /message> +< message > + + Don & apos; +t +Save < /source> +< translation > 不要儲存 < /translation> +< /message> +< message > +Don & apos; +t +Save +All < /source> +< translation +type = "vanished" > 不要全部儲存 < /translation> +< /message> +< message > + + Failed +to +cache +sequence < /source> +< translation > 序列快取失敗 < /translation> +< /message> +< message > + + No +active +viewer +found +with this sequence. < /source> +< translation +type = "unfinished" > No +active +viewer +found +with this sequence. < /translation> +< /message> +< message > + + Open +Project < /source> +< translation > 開啟專案 < /translation> +< /message> +< /context> +< context > +olive::CornerPinDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > 材質 < /translation> +< /message> +< message > + + Perspective < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Top +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Right < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Bottom +Left < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Corner +Pin < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Distort +the +image +by +dragging +the +corners. < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::CrashHandlerDialog < /name> + < message > + Olive < /source> + < translation +type = "vanished" > Olive < /translation> + < /message> + < message > + We & apos; +re +sorry, Olive +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "vanished" > 很抱歉,Olive +當機了。傳送錯誤報告能幫助我們修復問題。 +< /message> +< message > + + Oak +Video +Editor < /source> +< translation +type = "unfinished" > +< /message> +< message > + + We & apos; +re +sorry, Oak +Video +Editor +has +crashed.Please +help +us +fix +it +by +sending +an +error +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Describe +what +you +were +doing in as +much +detail as possible.If +you +can, provide +steps +to +reproduce +this +crash. < /source> +< translation > 請盡可能詳細地描述您在做什麼。如果可以的話,請提供重現此崩潰的步驟。 +< /message> +< message > + + Crash +Report: +< translation > 當機報告: +< /message> +< message > + + Send +Error +Report < /source> +< translation > 傳送錯誤報告 < /translation> +< /message> +< message > + + Don & apos; +t +Send < /source> +< translation > 不要傳送 < /translation> +< /message> +< message > + + Waiting +for crash report +to +be +generated +... + +< translation > 正在等候當機報告產生 +... + +< /message> +< message > + + Upload +Failed < /source> +< translation > 上傳失敗 < /translation> +< /message> +< message > + + Failed +to +send +error +report( % 1 +). +Please +try +again +later. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + SSL +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Encountered +the +following +SSL +errors: -Your recoverable projects are still available at: %1 - - - - - The following project versions have been auto-saved: - - - - - Disk Cache Full - - - - - The disk cache is currently full and Oak Video Editor is having to delete old frames to keep it within the limits set in the Disk preferences. This will result in SIGNIFICANTLY reduced cache performance. + % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +write +a +description +to +submit +this +crash +report. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + Failed +to +send +report < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +symbols +necessary +to +send +report.This +is +a +packaging +issue.Please +notify +the +maintainers +of +this +package. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +symbol +file.You +may +not +have +permission +to +access +it. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Confirm +Close < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Crash +report +is +still +uploading.Closing +now +may +result in no +report +being +sent.Are +you +sure +you +wish +to +close ? + < translation type = "unfinished" > + < /message> + < message > + Failed +to +send +error +report.Please +try +again +later. < /source> +< translation +type = "vanished" > 傳送錯誤報告失敗,請稍後再試。 +< /message> +< message > +No +Crash +Summary < /source> +< translation +type = "vanished" > 無當機摘要 < /translation> + < /message> + < message > + Are +you +sure +you +want +to +send +an +error +report +with no crash +summary ? + < translation type = "vanished" > 您確定要傳送無當機摘要的錯誤報告嗎? +< /message> +< /context> +< context > +olive::CropDistortNode < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > 材質 < /translation> +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Top < /source> + < translation +type = "unfinished" > 上方 < /translation> +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Bottom < /source> + < translation +type = "unfinished" > 下方 < /translation> +< /message> +< message > + + Feather < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Crop < /source> + < translation +type = "unfinished" > 裁切 < /translation> +< /message> +< message > + + Crop +the +edges +of +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CrossDissolveTransition < /name> +< message > + + Cross +Dissolve < /source> +< translation > 交叉溶解 < /translation> +< /message> +< message > + + Smoothly +transition +between +two +clips. < /source> +< translation +type = "unfinished" > Smoothly +transition +between +two +clips. < /translation> +< /message> +< /context> +< context > +olive::CurvePanel < /name> +< message > + + Curve +Editor < /source> +< translation > 曲線編輯器 < /translation> +< /message> +< /context> +< context > +olive::CurveView < /name> +< message > + + Zoom +to +Fit < /source> +< translation > 縮放至適當比例 < /translation> +< /message> +< message > + + Zoom +to +Fit +Selected < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Reset +Zoom < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved +Keyframe +Bezier +Control +Point < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CurveWidget < /name> +< message > + +Linear < /source> +< translation > 線性 < /translation> +< /message> +< message > + +Bezier < /source> +< translation > 貝茲曲線 < /translation> +< /message> +< message > + +Hold < /source> +< translation > 凍結 < /translation> +< /message> +< message > + + Changed +Type +of % 1 +Keyframe(s) +to % 2 < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::CustomCacheTask < /name> +< message > + + Caching +custom +range +for & +quot; +% +1 & quot; + +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DespillNode < /name> +< message > + + Despill < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Selection +of +simple +depsill +operations < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 輸入 < /translation> +< /message> +< message > + + Key +Color < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Green < /source> + < translation +type = "unfinished" > 綠 < /translation> +< /message> +< message > + + Blue < /source> + < translation +type = "unfinished" > 藍 < /translation> +< /message> +< message > + + Method < /source> + < translation +type = "unfinished" > 方式 < /translation> +< /message> +< message > + + Average < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Double +Red +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Double +Average < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Limit < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Preserve +Luminance < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DipToColorTransition < /name> +< message > + + Dip +To +Color < /source> +< translation +type = "unfinished" > Dip +To +Color < /translation> +< /message> +< message > + + Transition +between +clips +by +dipping +to +a +color. < /source> +< translation +type = "unfinished" > Transition +between +clips +by +dipping +to +a +color. < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > 顏色 < /translation> +< /message> +< /context> +< context > +olive::DiskCacheDialog < /name> +< message > + + Disk +Cache: % +1 < /source> +< translation > 磁碟快取:% +1 < /translation> +< /message> +< message > + + Disk +Cache +Settings < /source> +< translation > 磁碟快取設定 < /translation> +< /message> +< message > + + Maximum +Disk +Cache: +< translation > 最大磁碟快取: +< /message> +< message > + + % 1 +GB < /source> +< translation > % 1 +GB < /translation> +< /message> +< message > + + + + Clear +Disk +Cache < /source> +< translation > 清除磁碟快取 < /translation> +< /message> +< message > + + Automatically +clear +disk +cache +on +close < /source> +< translation > 關閉時自動清除磁碟快取 < /translation> +< /message> +< message > + + Are +you +sure +you +want +to +clear +the +disk +cache in & apos; +% +1 & apos; + ? + < translation > 您確定要清除 & apos; +% +1 & apos; +中的磁碟快取嗎? +< /message> +< message > + + Disk +Cache +Cleared < /source> +< translation > 已清除磁碟快取 < /translation> +< /message> +< message > + + Disk +cache +failed +to +fully +clear.You +may +have +to +delete the +cache +files +manually. < /source> +< translation > 磁碟快取無法完全清除。您可能必須手動刪除快取檔。 +< /message> +< message > + + Disk +Cache +Partially +Cleared < /source> +< translation > 已清除部分磁碟快取 < /translation> +< /message> +< /context> +< context > +olive::DiskManager < /name> +< message > + + + Disk +Cache +Error < /source> +< translation > 磁碟快取錯誤 < /translation> +< /message> +< message > + + Unable +to +set +custom +application +disk +cache.Using +default +instead. < /source> +< translation > 無法設定自訂應用程式磁碟快取。將改為使用預設值。 +< /message> +< message > + + Disk +Cache < /source> +< translation > 磁碟快取 < /translation> +< /message> +< message > + + You & apos; +ve +chosen +to +change +the +default +disk +cache +location.This +will +invalidate +your +current +cache.Would +you +like +to +continue +? + < translation > 您選擇了變更預設磁碟快取位置。這會使您目前的快取失效。要繼續嗎? +< /message> +< message > + + Failed +to +open +disk +cache +at & quot; +% +1 & quot; +. +Try +a +different +folder. < /source> +< translation > 無法開啟位於 & quot; +% +1 & quot; +的磁碟快取。請嘗試不同的資料夾。 +< /message> +< /context> +< context > +olive::DisplayTransformNode < /name> +< message > + + Display +Transform < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Converts +an +image +to +or +from +a +display +color +space. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 輸入 < /translation> +< /message> +< message > + + Display < /source> + < translation +type = "unfinished" > 顯示 < /translation> +< /message> +< message > + + View < /source> + < translation +type = "unfinished" > 檢視 < /translation> +< /message> +< message > + + Direction < /source> + < translation +type = "unfinished" > 方向 < /translation> +< /message> +< message > + + Forward < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Inverse < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::DropShadowFilter < /name> +< message > + + Texture < /source> + < translation +type = "unfinished" > 材質 < /translation> +< /message> +< message > + + Color < /source> + < translation +type = "unfinished" > 顏色 < /translation> +< /message> +< message > + + Distance < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Angle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Softness < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opacity < /source> + < translation +type = "unfinished" > 透明度 < /translation> +< /message> +< message > + + Faster(Lower +Quality +) + +< translation +type = "unfinished" > +< /message> +< message > + + Drop +Shadow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Adds +a +drop +shadow +to +an +image. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ElapsedCounterWidget < /name> +< message > + + Elapsed +: % +1 < /source> +< translation > 經過時間:% +1 < /translation> +< /message> +< message > + + Remaining +: % +1 < /source> +< translation > 剩餘時間:% +1 < /translation> +< /message> +< /context> +< context > +olive::ExportAdvancedVideoDialog < /name> +< message > + +Advanced < /source> +< translation > 進階 < /translation> +< /message> +< message > + +Pixel < /source> +< translation > 像素 < /translation> +< /message> +< message > + + Pixel +Format: +< translation > 像素格式: +< /message> +< message > + + YUV +Color +Range: +< translation +type = "unfinished" > +< /message> +< message > + + Limited(16 - 235) < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Full(0 - 255) < /source> + < translation +type = "unfinished" > +< /message> +< message > + +Performance < /source> +< translation > 效能 < /translation> +< /message> +< message > + + Threads +: + +< translation > 執行緒: +< /message> +< message > + + Auto < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportAudioTab < /name> +< message > + + Codec +: + +< translation > 轉碼器: +< /message> +< message > + + Sample +Rate: +< translation > 取樣頻率: +< /message> +< message > + + Channel +Layout: +< translation +type = "unfinished" > Channel +Layout: +< /message> +< message > + + Format +: + +< translation > 格式: +< /message> +< message > + + Bit +Rate: +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +kbps < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportCodec < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + H +.264 < /source> +< translation > H +.264 < /translation> +< /message> +< message > + + H +.264 +RGB < /source> +< translation +type = "unfinished" > +< /message> +< message > + + H +.265 < /source> +< translation > H +.265 < /translation> +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +ProRes < /source> +< translation > ProRes < /translation> +< /message> +< message > + + Cineform < /source> + < translation +type = "unfinished" > +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +MP2 < /source> +< translation > MP2 < /translation> +< /message> +< message > + +MP3 < /source> +< translation > MP3 < /translation> +< /message> +< message > + +AAC < /source> +< translation > AAC < /translation> +< /message> +< message > + +PCM(Uncompressed) < /source> +< translation > PCM(未壓縮) < /translation> +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Opus < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Vorbis < /source> + < translation +type = "unfinished" > +< /message> +< message > + + VP9 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + AV1 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< /context> +< context > +olive::ExportDialog < /name> +< message > + + Filename +: + +< translation > 檔名: +< /message> +< message > + + Browse +for exported file +filename < /source> +< translation +type = "unfinished" > Browse +for exported file +filename < /translation> +< /message> +< message > + + Preset +: + +< translation > 預設: +< /message> +< message > +Same +As +Source - High +Quality < /source> +< translation +type = "vanished" > 與來源相同 - 高品質 < /translation> + < /message> + < message > + Same +As +Source - Medium +Quality < /source> +< translation +type = "vanished" > 與來源相同 - 中等品質 < /translation> + < /message> + < message > + Same +As +Source - Low +Quality < /source> +< translation +type = "vanished" > 與來源相同 - 低品質 < /translation> +< /message> +< message > + + Range +: + +< translation > 範圍: +< /message> +< message > + + Entire +Sequence < /source> +< translation > 整個序列 < /translation> +< /message> +< message > + + In +to +Out < /source> +< translation > 進入點至退出點 < /translation> +< /message> +< message > + + Format +: + +< translation > 格式: +< /message> +< message > + + Export +Video < /source> +< translation > 匯出視訊 < /translation> +< /message> +< message > + + Export +Audio < /source> +< translation > 匯出音訊 < /translation> +< /message> +< message > + + Export +Subtitles < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Video < /source> +< translation > 視訊 < /translation> +< /message> +< message > + +Audio < /source> +< translation > 音訊 < /translation> +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Run +In +Background < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Exporting in the +background +allows +you +to +continue using +Oak +Video +Editor +while exporting, but may +result in slower +export +speeds, and +mayseverely +impact +editing +and +playback +performance. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Import +Result +After +Export < /source> +< translation +type = "unfinished" > +< /message> +< message > + + +Export < /source> +< translation > 匯出 < /translation> +< /message> +< message > + + Cancel < /source> + < translation +type = "unfinished" > 取消 < /translation> +< /message> +< message > + +Preview < /source> +< translation > 預覽 < /translation> +< /message> +< message > + + Invalid +parameters < /source> +< translation > 參數無效 < /translation> +< /message> +< message > + + Video, audio, and +subtitles +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "unfinished" > +< /message> +< message > + + The +intended +output +directory +doesn & apos; +t +exist +and +Oak +Video +Editor +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Export +is +set +to +an +image +sequence, but +the +filename +does +not +have +a +section +for digits(formatted as [# +####] +where +the +amount +of +# +is +the +amount +of +digits +). + +< translation +type = "unfinished" > + < /message> + < message +numerus = "yes" > + + Filename +doesn & apos; +t +contain +enough +digits +for the amount +of +frames +this +export +will +need(need % 1 +for % +n +frame(s) +). + +< translation +type = "unfinished" > + +< /translation> +< /message> +< message > + + Default < /source> + < translation +type = "unfinished" > 預設 < /translation> +< /message> +< message > + + Last +Used < /source> +< translation +type = "unfinished" > + < /message> + < message > + Both +video +and +audio +are +disabled.There & apos; +s +nothing +to +export. + +< translation +type = "vanished" > 視訊和音訊均被停用。沒有任何東西可以匯出。 +< /message> +< message > + + + + Invalid +filename < /source> +< translation > 檔名無效 < /translation> +< /message> +< message > + + The +filename +must +contain +the +extension & quot; +% +1 & quot; +. +Would +you +like +to +append +it +automatically ? + < translation > 檔案名稱必須包含副檔名 & quot; +% +1 & quot;。是否要自動附加? +< /message> +< message > + + Failed +to +create +output +directory < /source> +< translation +type = "unfinished" > Failed +to +create +output +directory < /translation> +< /message> +< message > +The +intended +output +directory +doesn & apos; +t +exist +and +Olive +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /source> +< translation +type = "obsolete" > The +intended +output +directory +doesn & apos; +t +exist +and +Olive +couldn & apos; +t +create +it.Please +choose +a +different +filename. < /translation> +< /message> +< message > + + Confirm +Overwrite < /source> +< translation > 確認覆寫 < /translation> +< /message> +< message > + + The +file & quot; +% +1 & quot; +already +exists.Do +you +want +to +overwrite +it ? + < translation > 檔案 & quot; +% +1 & quot; +已經存在,您要覆寫它嗎? +< /message> +< message > + + Invalid +Parameters < /source> +< translation > 參數無效 < /translation> +< /message> +< message > + + Width +and +height +must +be +multiples +of +2. < /source> +< translation > 寬度和高度必須是 +2 +的倍數。 +< /message> +< /context> +< context > +olive::ExportFormat < /name> +< message > + +DNxHD < /source> +< translation > DNxHD < /translation> +< /message> +< message > + + Matroska +Video < /source> +< translation > Matroska +視訊 < /translation> +< /message> +< message > + + MPEG - 4 +Video < /source> +< translation > MPEG - 4 +視訊 < /translation> +< /message> +< message > + + MPEG - 4 +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + +OpenEXR < /source> +< translation > OpenEXR < /translation> +< /message> +< message > + +PNG < /source> +< translation > PNG < /translation> +< /message> +< message > + +TIFF < /source> +< translation > TIFF < /translation> +< /message> +< message > + +QuickTime < /source> +< translation > QuickTime < /translation> +< /message> +< message > + + Wave +Audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + AIFF < /source> + < translation +type = "unfinished" > +< /message> +< message > + + MP3 < /source> + < translation +type = "unfinished" > MP3 < /translation> +< /message> +< message > + + FLAC < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ogg < /source> + < translation +type = "unfinished" > +< /message> +< message > + + WebM < /source> + < translation +type = "unfinished" > +< /message> +< message > + + SubRip +SRT < /source> +< translation +type = "unfinished" > +< /message> +< message > + +Unknown < /source> +< translation > 未知 < /translation> +< /message> +< /context> +< context > +olive::ExportFormatComboBox < /name> +< message > + + Video < /source> + < translation +type = "unfinished" > 視訊 < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > 音訊 < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSavePresetDialog < /name> +< message > + + Name +: + +< translation +type = "unfinished" > 名稱: +< /message> +< message > + + Save +Export +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Name < /source> +< translation +type = "unfinished" > +< /message> +< message > + + You +must +enter +a +name +to +save +an +export +preset. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Overwrite +Preset < /source> +< translation +type = "unfinished" > +< /message> +< message > + + A +preset +with the name & quot; +% +1 & quot; +already +exists.Do +you +wish +to +overwrite +it ? + < translation type = "unfinished" > +< /message> +< message > + + Write +Error < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +file & quot; +% +1 & quot; +for writing. < /source> + < translation type = "unfinished" > +< /message> +< /context> +< context > +olive::ExportSubtitlesTab < /name> +< message > + + Export +to +sidecar +file < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Sidecar +Format: +< translation +type = "unfinished" > +< /message> +< message > + + Codec +: + +< translation +type = "unfinished" > 轉碼器: +< /message> +< /context> +< context > +olive::ExportTask < /name> +< message > + + Exporting & quot; +% +1 & quot; + +< translation > 正在匯出 & quot; +% +1 & quot; + +< /message> +< message > + + Failed +to +create +encoder < /source> +< translation > 無法建立編碼器 < /translation> +< /message> +< message > + + Failed +to +open +file: % +1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +subtitle +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +subtitle +sidecar +file: % +1 < /source> +< translation +type = "unfinished" > + < /message> + < message > + Failed +to +open +file < /source> +< translation +type = "vanished" > 開啟檔案失敗 < /translation> +< /message> +< message > + + Failed +to +overwrite & quot; +% +1 & quot; +. +Export +has +been +saved as " +% +2 & quot; +instead. < /source> +< translation > 無法覆寫 & quot; +% +1 & quot;,已將匯出結果儲存為 & quot; +% +2 & quot;。 +< /message> +< /context> +< context > +olive::ExportVideoTab < /name> +< message > +Basic < /source> +< translation +type = "vanished" > 基本 < /translation> +< /message> +< message > + + General < /source> + < translation +type = "unfinished" > 一般 < /translation> +< /message> +< message > + + Width +: + +< translation > 寬度: +< /message> +< message > + + Height +: + +< translation > 高度: +< /message> +< message > + + Maintain +Aspect +Ratio: +< translation > 保持長寬比: +< /message> +< message > + + Scaling +Method: +< translation > 縮放方式: +< /message> +< message > + + Fit < /source> + < translation +type = "unfinished" > Fit < /translation> +< /message> +< message > + +Stretch < /source> +< translation > 拉伸 < /translation> +< /message> +< message > + +Crop < /source> +< translation > 裁切 < /translation> +< /message> +< message > + + Frame +Rate: +< translation > 影格率: +< /message> +< message > + + Pixel +Aspect +Ratio: +< translation > 像素長寬比: +< /message> +< message > + + Interlacing +: + +< translation +type = "unfinished" > Interlacing +: + +< /message> +< message > + + Quality +: + +< translation > 品質: +< /message> +< message > + +Codec < /source> +< translation > 轉碼器 < /translation> +< /message> +< message > + + Codec +: + +< translation > 轉碼器: +< /message> +< message > + +Advanced < /source> +< translation > 進階 < /translation> +< /message> +< /context> +< context > +olive::FFmpegEncoder < /name> +< message > + + Failed +to +allocate +output +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +suitable +pixel +format +for this buffer < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +configure +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +IO +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +write +format +header < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +add +frame +to +filter +graph < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +retrieve +frame +from +buffer +sink < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +sample +array < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +resample +audio < /source> +< translation +type = "unfinished" > +< /message> +< message > + + + + + Failed +to +write +interleaved +packet < /source> +< translation +type = "unfinished" > +< /message> +< message > + + % 1 +: % +2 % 3 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +send +frame +to +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +receive +packet +from +decoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Cannot +initialize +a +stream +that +is +not +a +video, audio, or +subtitle +type < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +find +codec +for 0x % 1 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Retrieved +unexpected +codec +type % 1 +for codec % 2 < /source> + < translation type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVStream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +allocate +AVCodecContext < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +open +encoder < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +copy +codec +parameters +to +stream < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +resampling +context < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +create +audio +frame < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FileField < /name> +< message > + + Open +Directory < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Open +File < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FlipDistortNode < /name> +< message > + + Flip < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Flips +an +image +horizontally +or +vertically < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Input < /source> + < translation +type = "unfinished" > 輸入 < /translation> +< /message> +< message > + + Horizontal < /source> + < translation +type = "unfinished" > 水平 < /translation> +< /message> +< message > + + Vertical < /source> + < translation +type = "unfinished" > 垂直 < /translation> +< /message> +< /context> +< context > +olive::FloatSlider < /name> +< message > + + % 1 +dB < /source> +< translation > % 1 +dB < /translation> +< /message> +< message > + + % 1 % +< translation > % 1 % +< /message> +< message > + + ∞ +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Folder < /name> +< message > + + Children < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Folder < /source> + < translation +type = "unfinished" > 資料夾 < /translation> +< /message> +< message > + + Organize +several +items +into +a +single +collection. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::Footage < /name> +< message > + + Filename < /source> + < translation +type = "unfinished" > 檔名 < /translation> +< /message> +< message > + + % 1 +: +Image - % 2 +x % 3 < /source> +< translation +type = "unfinished" > % 1:圖片 - % 2 +x % 3 < /translation> +< /message> +< message > + + % 1 +: +Video - % 2 +x % 3 < /source> +< translation +type = "unfinished" > % 1:影片 - % 2 +x % 3 < /translation> +< /message> +< message +numerus = "yes" > + + % 1 +: +Audio - % n +Channel(s), +% +2 +Hz < /source> +< translation +type = "unfinished" > + +< /translation> +< /message> +< message > + + % 1 +: +Subtitle < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Video < /source> + < translation +type = "unfinished" > 視訊 < /translation> +< /message> +< message > + + Audio < /source> + < translation +type = "unfinished" > 音訊 < /translation> +< /message> +< message > + + Subtitle < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > 未知 < /translation> +< /message> +< message > + + Filename +: % +1 < /source> +< translation +type = "unfinished" > 檔名:% +1 < /translation> +< /message> +< message > + + Invalid < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Media < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Import +video, audio, or +still +image +files +into +the +composition. < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootagePropertiesDialog < /name> +< message > + + & quot; +% +1 & quot; +Properties < /source> +< translation > & quot; +% +1 & quot; +屬性 < /translation> +< /message> +< message > + + Name +: + +< translation > 名稱: +< /message> +< message > + + Tracks +: + +< translation > 軌道: +< /message> +< message > + + Subtitles < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Unknown < /source> + < translation +type = "unfinished" > 未知 < /translation> +< /message> +< message > + + Set +Footage & quot; +% +1 & quot; +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::FootageRelinkDialog < /name> +< message > + +Footage < /source> +< translation > 素材 < /translation> +< /message> +< message > + +Filename < /source> +< translation > 檔名 < /translation> +< /message> +< message > + +Actions < /source> +< translation > 動作 < /translation> +< /message> +< message > + +Browse < /source> +< translation > 瀏覽 < /translation> +< /message> +< message > + + Relink +Footage < /source> +< translation > 重新連結素材 < /translation> +< /message> +< message > + + Relink & quot; +% +1 & quot; + +< translation > 重新連結 & quot; +% +1 & quot; + +< /message> +< message > + + Unsupported +media < /source> +< translation +type = "unfinished" > +< /message> +< message > + + This +file +type is +not +allowed +by +the +current +media +type filter +. + +< translation +type = "unfinished" > + < /message> + < message > + All +Files < /source> +< translation +type = "vanished" > 所有檔案 < /translation> +< /message> +< /context> +< context > +olive::FootageViewerPanel < /name> +< message > + + Footage +Viewer < /source> +< translation > 素材檢視器 < /translation> +< /message> +< /context> +< context > +olive::FrameRateComboBox < /name> +< message > + + Custom +Frame +Rate < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Enter +custom +frame +rate: +< translation +type = "unfinished" > +< /message> +< message > + + Invalid +Input < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Failed +to +convert & quot; +% +1 & quot; +to +a +frame +rate. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Custom +... + +< translation +type = "unfinished" > 自訂 +... + +< /message> +< message > + + Custom( % 1 +) + +< translation +type = "unfinished" > 自訂( % 1 +) + +< /message> +< /context> +< context > +olive::GapBlock < /name> +< message > + +Gap < /source> +< translation > 間距 < /translation> +< /message> +< message > + + A +time - based +node +that +represents +an +empty +space. < /source> +< translation +type = "unfinished" > A +time - based +node +that +represents +an +empty +space. < /translation> +< /message> +< /context> +< context > +olive::GeneratorWithMerge < /name> +< message > + + Base < /source> + < translation +type = "unfinished" > 基底 < /translation> +< /message> +< /context> +< context > +olive::H264BitRateSection < /name> +< message > + + Target +Bit +Rate(Mbps) +: + +< translation > 目標位元速率(Mbps): +< /message> +< message > + + Maximum +Bit +Rate(Mbps) +: + +< translation > 最大位元速率(Mbps): +< /message> +< message > + +Two - Pass < /source> +< translation > 雙通 < /translation> +< /message> +< /context> +< context > +olive::H264FileSizeSection < /name> +< message > + + Target +File +Size(MB) +: + +< translation > 目標檔案大小(MB): +< /message> +< message > + +Two - Pass < /source> +< translation > 雙通 < /translation> +< /message> +< /context> +< context > +olive::H264Section < /name> +< message > + + Encode +Speed: +< translation +type = "unfinished" > +< /message> +< message > + + This +setting +allows +you +to +tweak +the +ratio +of +export +speed +to +compression +quality.If +using Constant +Rate +Factor, slower +speeds +will +result in smaller +file +sizes +for the same +quality.If +using Target +Bit +Rate +or +Target +File +Size, slower +speeds +will +result in higher +quality +for the same +bitrate / filesize.This +setting +is +equivalent +to +the`preset` +setting in libx264. < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Ultra +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Super +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Very +Fast < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Faster < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Fast < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Medium < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slow < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Slower < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Very +Slow < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Compression +Method: +< translation > 壓縮方式: +< /message> +< message > + + Constant +Rate +Factor < /source> +< translation +type = "unfinished" > Constant +Rate +Factor < /translation> +< /message> +< message > + + Target +Bit +Rate < /source> +< translation > 目標位元速率 < /translation> +< /message> +< message > + + Target +File +Size < /source> +< translation > 目標檔案大小 < /translation> +< /message> +< /context> +< context > +olive::HistoryPanel < /name> +< message > + + History < /source> + < translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::ImageSection < /name> +< message > + + Image +Sequence: +< translation > 圖片序列: +< /message> +< message > + + Frame +to +Export: +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::InterlacedComboBox < /name> +< message > + + None(Progressive) < /source> + < translation > 無(漸進) +< /message> +< message > + + Top - Field +First < /source> +< translation +type = "unfinished" > Top - Field +First < /translation> +< /message> +< message > + + Bottom - Field +First < /source> +< translation +type = "unfinished" > Bottom - Field +First < /translation> +< /message> +< /context> +< context > +olive::KeyframePropertiesDialog < /name> +< message > + + Keyframe +Properties < /source> +< translation > 關鍵影格屬性 < /translation> +< /message> +< message > + + In +: + +< translation > 進入點: +< /message> +< message > + + Out +: + +< translation > 退出點: +< /message> +< message > + +Linear < /source> +< translation > 線性 < /translation> +< /message> +< message > + +Hold < /source> +< translation > 凍結 < /translation> +< /message> +< message > + +Bezier < /source> +< translation > 貝茲曲線 < /translation> +< /message> +< message > + + Set +Keyframe +Properties < /source> +< translation +type = "unfinished" > +< /message> +< /context> +< context > +olive::KeyframeView < /name> +< message > + + Deleted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Pasted % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Moved % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Linear < /source> + < translation +type = "unfinished" > 線性 < /translation> +< /message> +< message > + + Bezier < /source> + < translation +type = "unfinished" > 貝茲曲線 < /translation> +< /message> +< message > + + Hold < /source> + < translation +type = "unfinished" > 凍結 < /translation> +< /message> +< message > + + P & roperties < /source> + < translation +type = "unfinished" > 屬性( & R +) + +< /message> +< message > + + Set +Type +of % 1 +Keyframe(s) < /source> +< translation +type = "unfinished" > + < /message> + < /context> + < context > + olive::KeyframeViewBase < /name> + < message > + Linear < /source> + < translation +type = "vanished" > 線性 < /translation> + < /message> + < message > + Bezier < /source> + < translation +type = "vanished" > 貝茲曲線 < /translation> + < /message> + < message > + Hold < /source> + < translation +type = "vanished" > 凍結 < /translation> + < /message> + < message > + P & roperties < /source> + < translation +type = "vanished" > 屬性( & R +) + +< /message> +< /context> +< context > +olive::LoadOTIOTask < /name> +< message > +Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; + +< translation +type = "vanished" > 無法從 & quot; +% +1 & quot; +檔案載入 +OpenTimelineIO < /translation> +< /message> +< message > + + Failed +to +load +OpenTimelineIO +from +file & quot; +% +1 & quot; -To remedy this, please do one of the following: +OpenTimelineIO +Error: -1. Manually clear the disk cache in Disk preferences. -2. Increase the maximum disk cache size in Disk preferences. -3. Reduce usage of the disk cache (e.g. disable auto-cache or only cache specific sections of your sequence). - - - - - Save Project As - 另存專案為 - - - - Load Project - 載入專案 - - - - Label Node - 標記節點 - - - - Set node label - 設置節點標籤 - - - - Sequence %1 - 序列 %1 - - - - Cannot open recent project - 無法開啟最近專案 - - - - The project "%1" doesn't exist. Would you like to remove this file from the recent list? - 專案 "%1" 不存在。是否要從最近清單中刪除此檔案? - - - - Unsaved Changes - 未儲存的變更 - - - - The project '%1' has unsaved changes. Would you like to save them? - 專案 '%1' 含有尚未儲存的變更。您要儲存嗎? - - - - Save - 儲存 - - - Save All - 儲存全部 - - - - Don't Save - 不要儲存 - - - Don't Save All - 不要全部儲存 - - - - Failed to cache sequence - 序列快取失敗 - - - - No active viewer found with this sequence. - No active viewer found with this sequence. - - - - Open Project - 開啟專案 - - - - olive::CornerPinDistortNode - - - Texture - 材質 - - - - Perspective - - - - - Top Left - - - - - Top Right - - - - - Bottom Right - - - - - Bottom Left - - - - - Corner Pin - - - - - Distort the image by dragging the corners. - - - - - olive::CrashHandlerDialog - - Olive - Olive - - - We're sorry, Olive has crashed. Please help us fix it by sending an error report. - 很抱歉,Olive 當機了。傳送錯誤報告能幫助我們修復問題。 - - - - Oak Video Editor - - - - - We're sorry, Oak Video Editor has crashed. Please help us fix it by sending an error report. - - - - - Describe what you were doing in as much detail as possible. If you can, provide steps to reproduce this crash. - 請盡可能詳細地描述您在做什麼。如果可以的話,請提供重現此崩潰的步驟。 - - - - Crash Report: - 當機報告: - - - - Send Error Report - 傳送錯誤報告 - - - - Don't Send - 不要傳送 - - - - Waiting for crash report to be generated... - 正在等候當機報告產生... - - - - Upload Failed - 上傳失敗 - - - - Failed to send error report (%1). Please try again later. - - - - - SSL Error - - - - - Encountered the following SSL errors: - -%1 - - - - - You must write a description to submit this crash report. - - - - - - Failed to send report - - - - - Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - - - - - Failed to open symbol file. You may not have permission to access it. - - - - - Confirm Close - - - - - Crash report is still uploading. Closing now may result in no report being sent. Are you sure you wish to close? - - - - Failed to send error report. Please try again later. - 傳送錯誤報告失敗,請稍後再試。 - - - No Crash Summary - 無當機摘要 - - - Are you sure you want to send an error report with no crash summary? - 您確定要傳送無當機摘要的錯誤報告嗎? - - - - olive::CropDistortNode - - - Texture - 材質 - - - - Left - - - - - Top - 上方 - - - - Right - - - - - Bottom - 下方 - - - - Feather - - - - - Crop - 裁切 - - - - Crop the edges of an image. - - - - - olive::CrossDissolveTransition - - - Cross Dissolve - 交叉溶解 - - - - Smoothly transition between two clips. - Smoothly transition between two clips. - - - - olive::CurvePanel - - - Curve Editor - 曲線編輯器 - - - - olive::CurveView - - - Zoom to Fit - 縮放至適當比例 - - - - Zoom to Fit Selected - - - - - Reset Zoom - - - - - Moved Keyframe Bezier Control Point - - - - - olive::CurveWidget - - - Linear - 線性 - - - - Bezier - 貝茲曲線 - - - - Hold - 凍結 - - - - Changed Type of %1 Keyframe(s) to %2 - - - - - olive::CustomCacheTask - - - Caching custom range for "%1" - - - - - olive::DespillNode - - - Despill - - - - - Selection of simple depsill operations - - - - - Input - 輸入 - - - - Key Color - - - - - Green - - - - - Blue - - - - - Method - 方式 - - - - Average - - - - - Double Red Average - - - - - Double Average - - - - - Limit - - - - - Preserve Luminance - - - - - olive::DipToColorTransition - - - Dip To Color - Dip To Color - - - - Transition between clips by dipping to a color. - Transition between clips by dipping to a color. - - - - Color - 顏色 - - - - olive::DiskCacheDialog - - - Disk Cache: %1 - 磁碟快取:%1 - - - - Disk Cache Settings - 磁碟快取設定 - - - - Maximum Disk Cache: - 最大磁碟快取: - - - - %1 GB - %1 GB - - - - - - Clear Disk Cache - 清除磁碟快取 - - - - Automatically clear disk cache on close - 關閉時自動清除磁碟快取 - - - - Are you sure you want to clear the disk cache in '%1'? - 您確定要清除 '%1' 中的磁碟快取嗎? - - - - Disk Cache Cleared - 已清除磁碟快取 - - - - Disk cache failed to fully clear. You may have to delete the cache files manually. - 磁碟快取無法完全清除。您可能必須手動刪除快取檔。 - - - - Disk Cache Partially Cleared - 已清除部分磁碟快取 - - - - olive::DiskManager - - - - Disk Cache Error - 磁碟快取錯誤 - - - - Unable to set custom application disk cache. Using default instead. - 無法設定自訂應用程式磁碟快取。將改為使用預設值。 - - - - Disk Cache - 磁碟快取 - - - - You've chosen to change the default disk cache location. This will invalidate your current cache. Would you like to continue? - 您選擇了變更預設磁碟快取位置。這會使您目前的快取失效。要繼續嗎? - - - - Failed to open disk cache at "%1". Try a different folder. - 無法開啟位於 "%1" 的磁碟快取。請嘗試不同的資料夾。 - - - - olive::DisplayTransformNode - - - Display Transform - - - - - Converts an image to or from a display color space. - - - - - Input - 輸入 - - - - Display - 顯示 - - - - View - 檢視 - - - - Direction - 方向 - - - - Forward - - - - - Inverse - - - - - olive::DropShadowFilter - - - Texture - 材質 - - - - Color - 顏色 - - - - Distance - - - - - Angle - - - - - Softness - - - - - Opacity - 透明度 - - - - Faster (Lower Quality) - - - - - Drop Shadow - - - - - Adds a drop shadow to an image. - - - - - olive::ElapsedCounterWidget - - - Elapsed: %1 - 經過時間:%1 - - - - Remaining: %1 - 剩餘時間:%1 - - - - olive::ExportAdvancedVideoDialog - - - Advanced - 進階 - - - - Pixel - 像素 - - - - Pixel Format: - 像素格式: - - - - YUV Color Range: - - - - - Limited (16-235) - - - - - Full (0-255) - - - - - Performance - 效能 - - - - Threads: - 執行緒: - - - - Auto - - - - - olive::ExportAudioTab - - - Codec: - 轉碼器: - - - - Sample Rate: - 取樣頻率: - - - - Channel Layout: - Channel Layout: - - - - Format: - 格式: - - - - Bit Rate: - - - - - %1 kbps - - - - - olive::ExportCodec - - - DNxHD - DNxHD - - - - H.264 - H.264 - - - - H.264 RGB - - - - - H.265 - H.265 - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - ProRes - ProRes - - - - Cineform - - - - - TIFF - TIFF - - - - MP2 - MP2 - - - - MP3 - MP3 - - - - AAC - AAC - - - - PCM (Uncompressed) - PCM (未壓縮) - - - - FLAC - - - - - Opus - - - - - Vorbis - - - - - VP9 - - - - - AV1 - - - - - SubRip SRT - - - - - Unknown - 未知 - - - - olive::ExportDialog - - - Filename: - 檔名: - - - - Browse for exported file filename - Browse for exported file filename - - - - Preset: - 預設: - - - Same As Source - High Quality - 與來源相同 - 高品質 - - - Same As Source - Medium Quality - 與來源相同 - 中等品質 - - - Same As Source - Low Quality - 與來源相同 - 低品質 - - - - Range: - 範圍: - - - - Entire Sequence - 整個序列 - - - - In to Out - 進入點至退出點 - - - - Format: - 格式: - - - - Export Video - 匯出視訊 - - - - Export Audio - 匯出音訊 - - - - Export Subtitles - - - - - Video - 視訊 - - - - Audio - 音訊 - - - - Subtitles - - - - - Run In Background - - - - - Exporting in the background allows you to continue using Oak Video Editor while exporting, but may result in slower export speeds, and mayseverely impact editing and playback performance. - - - - - Import Result After Export - - - - - - Export - 匯出 - - - - Cancel - 取消 - - - - Preview - 預覽 - - - - Invalid parameters - 參數無效 - - - - Video, audio, and subtitles are disabled. There's nothing to export. - - - - - The intended output directory doesn't exist and Oak Video Editor couldn't create it. Please choose a different filename. - - - - - Export is set to an image sequence, but the filename does not have a section for digits (formatted as [#####] where the amount of # is the amount of digits). - - - - - Filename doesn't contain enough digits for the amount of frames this export will need (need %1 for %n frame(s)). - - - - - - - Default - 預設 - - - - Last Used - - - - Both video and audio are disabled. There's nothing to export. - 視訊和音訊均被停用。沒有任何東西可以匯出。 - - - - - - Invalid filename - 檔名無效 - - - - The filename must contain the extension "%1". Would you like to append it automatically? - 檔案名稱必須包含副檔名 "%1"。是否要自動附加? - - - - Failed to create output directory - Failed to create output directory - - - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - The intended output directory doesn't exist and Olive couldn't create it. Please choose a different filename. - - - - Confirm Overwrite - 確認覆寫 - - - - The file "%1" already exists. Do you want to overwrite it? - 檔案 "%1" 已經存在,您要覆寫它嗎? - - - - Invalid Parameters - 參數無效 - - - - Width and height must be multiples of 2. - 寬度和高度必須是 2 的倍數。 - - - - olive::ExportFormat - - - DNxHD - DNxHD - - - - Matroska Video - Matroska 視訊 - - - - MPEG-4 Video - MPEG-4 視訊 - - - - MPEG-4 Audio - - - - - OpenEXR - OpenEXR - - - - PNG - PNG - - - - TIFF - TIFF - - - - QuickTime - QuickTime - - - - Wave Audio - - - - - AIFF - - - - - MP3 - MP3 - - - - FLAC - - - - - Ogg - - - - - WebM - - - - - SubRip SRT - - - - - Unknown - 未知 - - - - olive::ExportFormatComboBox - - - Video - 視訊 - - - - Audio - 音訊 - - - - Subtitle - - - - - olive::ExportSavePresetDialog - - - Name: - 名稱: - - - - Save Export Preset - - - - - Invalid Name - - - - - You must enter a name to save an export preset. - - - - - Overwrite Preset - - - - - A preset with the name "%1" already exists. Do you wish to overwrite it? - - - - - Write Error - - - - - Failed to open file "%1" for writing. - - - - - olive::ExportSubtitlesTab - - - Export to sidecar file - - - - - Sidecar Format: - - - - - Codec: - 轉碼器: - - - - olive::ExportTask - - - Exporting "%1" - 正在匯出 "%1" - - - - Failed to create encoder - 無法建立編碼器 - - - - Failed to open file: %1 - - - - - Failed to create subtitle encoder - - - - - Failed to open subtitle sidecar file: %1 - - - - Failed to open file - 開啟檔案失敗 - - - - Failed to overwrite "%1". Export has been saved as "%2" instead. - 無法覆寫 "%1",已將匯出結果儲存為 "%2"。 - - - - olive::ExportVideoTab - - Basic - 基本 - - - - General - 一般 - - - - Width: - 寬度: - - - - Height: - 高度: - - - - Maintain Aspect Ratio: - 保持長寬比: - - - - Scaling Method: - 縮放方式: - - - - Fit - Fit - - - - Stretch - 拉伸 - - - - Crop - 裁切 - - - - Frame Rate: - 影格率: - - - - Pixel Aspect Ratio: - 像素長寬比: - - - - Interlacing: - Interlacing: - - - - Quality: - 品質: - - - - Codec - 轉碼器 - - - - Codec: - 轉碼器: - - - - Advanced - 進階 - - - - olive::FFmpegEncoder - - - Failed to allocate output context - - - - - Failed to find suitable pixel format for this buffer - - - - - Failed to configure filter graph - - - - - Failed to open IO context - - - - - Failed to write format header - - - - - Failed to add frame to filter graph - - - - - Failed to retrieve frame from buffer sink - - - - - Failed to allocate sample array - - - - - Failed to resample audio - - - - - - - - Failed to write interleaved packet - - - - - %1: %2 %3 - - - - - Failed to send frame to encoder - - - - - Failed to receive packet from decoder - - - - - Cannot initialize a stream that is not a video, audio, or subtitle type - - - - - Failed to find codec for 0x%1 - - - - - Retrieved unexpected codec type %1 for codec %2 - - - - - Failed to allocate AVStream - - - - - Failed to allocate AVCodecContext - - - - - Failed to open encoder - - - - - Failed to copy codec parameters to stream - - - - - Failed to create resampling context - - - - - Failed to create audio frame - - - - - olive::FileField - - - Open Directory - - - - - Open File - - - - - olive::FlipDistortNode - - - Flip - - - - - Flips an image horizontally or vertically - - - - - Input - 輸入 - - - - Horizontal - 水平 - - - - Vertical - 垂直 - - - - olive::FloatSlider - - - %1 dB - %1 dB - - - - %1% - %1% - - - - ∞ - - - - - olive::Folder - - - Children - - - - - Folder - 資料夾 - - - - Organize several items into a single collection. - - - - - olive::Footage - - - Filename - 檔名 - - - - %1: Image - %2x%3 - %1:圖片 - %2x%3 - - - - %1: Video - %2x%3 - %1:影片 - %2x%3 - - - - %1: Audio - %n Channel(s), %2Hz - - - - - - - %1: Subtitle - - - - - Video - 視訊 - - - - Audio - 音訊 - - - - Subtitle - - - - - Unknown - 未知 - - - - Filename: %1 - 檔名:%1 - - - - Invalid - - - - - Media - - - - - Import video, audio, or still image files into the composition. - - - - - olive::FootagePropertiesDialog - - - "%1" Properties - "%1" 屬性 - - - - Name: - 名稱: - - - - Tracks: - 軌道: - - - - Subtitles - - - - - Unknown - 未知 - - - - Set Footage "%1" Properties - - - - - olive::FootageRelinkDialog - - - Footage - 素材 - - - - Filename - 檔名 - - - - Actions - 動作 - - - - Browse - 瀏覽 - - - - Relink Footage - 重新連結素材 - - - - Relink "%1" - 重新連結 "%1" - - - - Unsupported media - - - - - This file type is not allowed by the current media type filter. - - - - All Files - 所有檔案 - - - - olive::FootageViewerPanel - - - Footage Viewer - 素材檢視器 - - - - olive::FrameRateComboBox - - - Custom Frame Rate - - - - - Enter custom frame rate: - - - - - Invalid Input - - - - - Failed to convert "%1" to a frame rate. - - - - - Custom... - 自訂... - - - - Custom (%1) - 自訂 (%1) - - - - olive::GapBlock - - - Gap - 間距 - - - - A time-based node that represents an empty space. - A time-based node that represents an empty space. - - - - olive::GeneratorWithMerge - - - Base - 基底 - - - - olive::H264BitRateSection - - - Target Bit Rate (Mbps): - 目標位元速率 (Mbps): - - - - Maximum Bit Rate (Mbps): - 最大位元速率 (Mbps): - - - - Two-Pass - 雙通 - - - - olive::H264FileSizeSection - - - Target File Size (MB): - 目標檔案大小 (MB): - - - - Two-Pass - 雙通 - - - - olive::H264Section - - - Encode Speed: - - - - - This setting allows you to tweak the ratio of export speed to compression quality. - -If using Constant Rate Factor, slower speeds will result in smaller file sizes for the same quality. - -If using Target Bit Rate or Target File Size, slower speeds will result in higher quality for the same bitrate/filesize. - -This setting is equivalent to the `preset` setting in libx264. - - - - - Ultra Fast - - - - - Super Fast - - - - - Very Fast - - - - - Faster - - - - - Fast - - - - - Medium - - - - - Slow - - - - - Slower - - - - - Very Slow - - - - - Compression Method: - 壓縮方式: - - - - Constant Rate Factor - Constant Rate Factor - - - - Target Bit Rate - 目標位元速率 - - - - Target File Size - 目標檔案大小 - - - - olive::HistoryPanel - - - History - - - - - olive::ImageSection - - - Image Sequence: - 圖片序列: - - - - Frame to Export: - - - - - olive::InterlacedComboBox - - - None (Progressive) - 無(漸進) - - - - Top-Field First - Top-Field First - - - - Bottom-Field First - Bottom-Field First - - - - olive::KeyframePropertiesDialog - - - Keyframe Properties - 關鍵影格屬性 - - - - In: - 進入點: - - - - Out: - 退出點: - - - - Linear - 線性 - - - - Hold - 凍結 - - - - Bezier - 貝茲曲線 - - - - Set Keyframe Properties - - - - - olive::KeyframeView - - - Deleted %1 Keyframe(s) - - - - - Pasted %1 Keyframe(s) - - - - - Moved %1 Keyframe(s) - - - - - Linear - 線性 - - - - Bezier - 貝茲曲線 - - - - Hold - 凍結 - - - - P&roperties - 屬性 (&R) - - - - Set Type of %1 Keyframe(s) - - - - - olive::KeyframeViewBase - - Linear - 線性 - - - Bezier - 貝茲曲線 - - - Hold - 凍結 - - - P&roperties - 屬性 (&R) - - - - olive::LoadOTIOTask - - Failed to load OpenTimelineIO from file "%1" - 無法從 "%1" 檔案載入 OpenTimelineIO - - - - Failed to load OpenTimelineIO from file "%1" - -OpenTimelineIO Error: - -%2 - - - - - Unknown OpenTimelineIO root element - Unknown OpenTimelineIO root element - - - - Sequence %1 - 序列 %1 - - - - Failed to load clip - 無法載入片段 - - - - olive::MainMenu - - - &Save '%1' - 儲存 '%1' (&S) - - - - Save '%1' &As - Save '%1' &As - - - Close '%1' - 關閉 '%1' - - - Close All Except '%1' - Close All Except '%1' - - - - &Save Project - 儲存專案 (&S) - - - - Save Project &As - 另存專案為 (&A) - - - Close Project - 關閉專案 - - - Close All Except Current Project - Close All Except Current Project - - - - (None) - (無) - - - - &File - 檔案 (&F) - - - - &New - 新增 (&N) - - - - &Open Project - 開啟專案 (&O) - - - - Open &Recent - 開啟最近使用 (&R) - - - - &Clear Recent List - 清除最近列表 (&C) - - - Sa&ve All Projects - 儲存所有專案 (&V) - - - - &Import... - 匯入... (&I) - - - - &Export - 匯出 (&E) - - - - &Media... - 媒體... (&M) - - - &Project Properties... - 專案屬性... (&P) - - - Close All Projects - 關閉所有專案 - - - - Ctrl+O - - - - - Ctrl+S - - - - - Ctrl+Shift+S - - - - - F12 - - - - - Ctrl+I - - - - - Ctrl+M - - - - - Shift+F10 - - - - - Ctrl+Z - - - - - Ctrl+Shift+Z - - - - - Backspace - - - - - Ctrl+A - - - - - Ctrl+Shift+A - - - - - , - - - - - . - - - - - Q - - - - - W - - - - - Ctrl+Alt+Q - - - - - Ctrl+Alt+W - - - - - Alt+Left - - - - - Alt+Right - - - - - [ - - - - - ] - - - - - ; - - - - - ' - - - - - M - M - - - - = - - - - - - - - - - - Ctrl+= - - - - - Ctrl+- - - - - - \ - - - - - F11 - - - - - Home - - - - - Left - - - - - Space - - - - - Shift+Space - - - - - Right - - - - - End - - - - - Up - - - - - Down - - - - - Shift+I - - - - - Shift+O - - - - - J - J - - - - K - - - - - L - L - - - - ` + % +2 < /source> +< translation +type = "unfinished" > +< /message> +< message > + + Unknown +OpenTimelineIO +root +element < /source> +< translation +type = "unfinished" > Unknown +OpenTimelineIO +root +element < /translation> +< /message> +< message > + + Sequence % 1 < /source> + < translation +type = "unfinished" > 序列 % 1 < /translation> +< /message> +< message > + + Failed +to +load +clip < /source> +< translation > 無法載入片段 < /translation> +< /message> +< /context> +< context > +olive::MainMenu < /name> +< message > + + & Save & apos; +% +1 & apos; + +< translation > 儲存 & apos; +% +1 & apos; +( & S +) + +< /message> +< message > + + Save & apos; +% +1 & apos; +& +As < /source> +< translation +type = "unfinished" > Save & apos; +% +1 & apos; +& +As < /translation> +< /message> +< message > +Close & apos; +% +1 & apos; + +< translation +type = "vanished" > 關閉 & apos; +% +1 & apos; + +< /message> +< message > +Close +All +Except & apos; +% +1 & apos; + +< translation +type = "obsolete" > Close +All +Except & apos; +% +1 & apos; + +< /message> +< message > + + & Save +Project < /source> +< translation > 儲存專案( & S +) + +< /message> +< message > + + Save +Project & As < /source> +< translation > 另存專案為( & A +) + +< /message> +< message > +Close +Project < /source> +< translation +type = "vanished" > 關閉專案 < /translation> + < /message> + < message > + Close +All +Except +Current +Project < /source> +< translation +type = "obsolete" > Close +All +Except +Current +Project < /translation> +< /message> +< message > + +(None) < /source> +< translation > (無) < /translation> +< /message> +< message > + + & File < /source> + < translation > 檔案( & F +) + +< /message> +< message > + + & New < /source> + < translation > 新增( & N +) + +< /message> +< message > + + & Open +Project < /source> +< translation > 開啟專案( & O +) + +< /message> +< message > + + Open & Recent < /source> + < translation > 開啟最近使用( & R +) + +< /message> +< message > + + & Clear +Recent +List < /source> +< translation > 清除最近列表( & C +) + +< /message> +< message > +Sa & ve +All +Projects < /source> +< translation +type = "vanished" > 儲存所有專案( & V +) + +< /message> +< message > + + & Import +... + +< translation > 匯入 +... +( & I +) + +< /message> +< message > + + & Export < /source> + < translation > 匯出( & E +) + +< /message> +< message > + + & Media +... + +< translation > 媒體 +... +( & M +) + +< /message> +< message > + & Project +Properties +... + +< translation +type = "vanished" > 專案屬性 +... +( & P +) + +< /message> +< message > +Close +All +Projects < /source> +< translation +type = "vanished" > 關閉所有專案 < /translation> +< /message> +< message > + + Ctrl + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + S < /source> + < translation +type = "unfinished" > +< /message> +< message > + + F12 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + M < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + F10 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + Z < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Backspace < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Shift + A < /source> + < translation +type = "unfinished" > +< /message> +< message > + + , +< translation +type = "unfinished" > +< /message> +< message > + + +. + +< translation +type = "unfinished" > +< /message> +< message > + + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + Q < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + Alt + W < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Alt + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + [ + < translation type = "unfinished" > + < /message> + < message > + + ] < /source> + < translation +type = "unfinished" > +< /message> +< message > + + ; + +< translation +type = "unfinished" > +< /message> +< message > + + & apos; + +< translation +type = "unfinished" > +< /message> +< message > + + M < /source> + < translation +type = "unfinished" > M < /translation> +< /message> +< message > + + = + < translation +type = "unfinished" > +< /message> +< message > + + - + < translation +type = "unfinished" > +< /message> +< message > + +Ctrl += + < translation +type = "unfinished" > +< /message> +< message > + + Ctrl + - + < translation +type = "unfinished" > +< /message> +< message > + + \ +< translation +type = "unfinished" > +< /message> +< message > + + F11 < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Home < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Left < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + Space < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Right < /source> + < translation +type = "unfinished" > +< /message> +< message > + + End < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Up < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Down < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + I < /source> + < translation +type = "unfinished" > +< /message> +< message > + + Shift + O < /source> + < translation +type = "unfinished" > +< /message> +< message > + + J < /source> + < translation +type = "unfinished" > J < /translation> +< /message> +< message > + + K < /source> + < translation +type = "unfinished" > +< /message> +< message > + + L < /source> + < translation +type = "unfinished" > L < /translation> +< /message> +< message > + + ` diff --git a/app/ui/CMakeLists.txt b/app/ui/CMakeLists.txt index 0cf894b7f..e0f49c2c2 100644 --- a/app/ui/CMakeLists.txt +++ b/app/ui/CMakeLists.txt @@ -20,15 +20,15 @@ add_subdirectory(icons) add_subdirectory(style) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - PARENT_SCOPE + ${OLIVE_RESOURCES} + PARENT_SCOPE ) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - ui/colorcoding.cpp - ui/colorcoding.h - ui/humanstrings.cpp - ui/humanstrings.h - PARENT_SCOPE + ${OLIVE_SOURCES} + ui/colorcoding.cpp + ui/colorcoding.h + ui/humanstrings.cpp + ui/humanstrings.h + PARENT_SCOPE ) diff --git a/app/ui/cursors/CMakeLists.txt b/app/ui/cursors/CMakeLists.txt index 2627d8432..37b884072 100644 --- a/app/ui/cursors/CMakeLists.txt +++ b/app/ui/cursors/CMakeLists.txt @@ -15,7 +15,7 @@ # along with this program. If not, see . set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - ui/cursors/cursors.qrc - PARENT_SCOPE + ${OLIVE_RESOURCES} + ui/cursors/cursors.qrc + PARENT_SCOPE ) diff --git a/app/ui/cursors/razor-a.svg b/app/ui/cursors/razor-a.svg index 17bb4935a..5ee953b3a 100644 --- a/app/ui/cursors/razor-a.svg +++ b/app/ui/cursors/razor-a.svg @@ -20,11047 +20,11047 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="5.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/4_16.png" + inkscape:export-xdpi="24" + inkscape:export-ydpi="24"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/razor-b.svg b/app/ui/cursors/razor-b.svg index db8a4cb64..95c853104 100644 --- a/app/ui/cursors/razor-b.svg +++ b/app/ui/cursors/razor-b.svg @@ -20,11045 +20,11045 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="5b.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/4_16.png" + inkscape:export-xdpi="24" + inkscape:export-ydpi="24"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/razor-c.svg b/app/ui/cursors/razor-c.svg index d557c023e..716f93608 100644 --- a/app/ui/cursors/razor-c.svg +++ b/app/ui/cursors/razor-c.svg @@ -20,11037 +20,11037 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="5c.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/4_16.png" + inkscape:export-xdpi="24" + inkscape:export-ydpi="24"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/ripple-left.svg b/app/ui/cursors/ripple-left.svg index 112e53323..11b54b256 100644 --- a/app/ui/cursors/ripple-left.svg +++ b/app/ui/cursors/ripple-left.svg @@ -20,11058 +20,11058 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="3_left.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/1_left_64.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/ripple-right.svg b/app/ui/cursors/ripple-right.svg index 9f5791cbd..47164d601 100644 --- a/app/ui/cursors/ripple-right.svg +++ b/app/ui/cursors/ripple-right.svg @@ -20,11059 +20,11059 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="3_right.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/3_left_16.png" + inkscape:export-xdpi="24" + inkscape:export-ydpi="24"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/rolling.svg b/app/ui/cursors/rolling.svg index c4a346c59..4b40e03a5 100644 --- a/app/ui/cursors/rolling.svg +++ b/app/ui/cursors/rolling.svg @@ -20,11073 +20,11073 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="2.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/2_16.png" + inkscape:export-xdpi="24" + inkscape:export-ydpi="24"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/slip.svg b/app/ui/cursors/slip.svg index bdefdcf07..8f1f1f3a5 100644 --- a/app/ui/cursors/slip.svg +++ b/app/ui/cursors/slip.svg @@ -20,11059 +20,11059 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="4.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/3_right_64.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/trim-left.svg b/app/ui/cursors/trim-left.svg index d1d4ce94b..f05b10b59 100644 --- a/app/ui/cursors/trim-left.svg +++ b/app/ui/cursors/trim-left.svg @@ -20,11061 +20,11061 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="1_left.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/1_right_16.png" + inkscape:export-xdpi="24" + inkscape:export-ydpi="24"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/cursors/trim-right.svg b/app/ui/cursors/trim-right.svg index d6ebb83b8..81f81c1fa 100644 --- a/app/ui/cursors/trim-right.svg +++ b/app/ui/cursors/trim-right.svg @@ -20,11061 +20,11061 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="1_right.svg" + inkscape:version="0.91+devel+osxmenu r12922" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive/cursors/2_64.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/graphics/CMakeLists.txt b/app/ui/graphics/CMakeLists.txt index e32d639f3..6d47c4f20 100644 --- a/app/ui/graphics/CMakeLists.txt +++ b/app/ui/graphics/CMakeLists.txt @@ -15,7 +15,7 @@ # along with this program. If not, see . set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - ui/graphics/graphics.qrc - PARENT_SCOPE + ${OLIVE_RESOURCES} + ui/graphics/graphics.qrc + PARENT_SCOPE ) diff --git a/app/ui/humanstrings.cpp b/app/ui/humanstrings.cpp index 6b8a19609..e8197acad 100644 --- a/app/ui/humanstrings.cpp +++ b/app/ui/humanstrings.cpp @@ -92,8 +92,8 @@ QString HumanStrings::FormatToString(const SampleFormat &f) break; } - return QCoreApplication::translate("AudioParams", "Unknown (0x%1)") - .arg(static_cast(f), 1, 16); + return QCoreApplication::translate("AudioParams", "Unknown (0x%1)") + .arg(static_cast(f), 1, 16); } } diff --git a/app/ui/icons/CMakeLists.txt b/app/ui/icons/CMakeLists.txt index 41fa1c3b9..b1cae78dc 100644 --- a/app/ui/icons/CMakeLists.txt +++ b/app/ui/icons/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - ui/icons/icons.h - ui/icons/icons.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + ui/icons/icons.h + ui/icons/icons.cpp + PARENT_SCOPE ) diff --git a/app/ui/style/CMakeLists.txt b/app/ui/style/CMakeLists.txt index 62f48f031..9ff51e67c 100644 --- a/app/ui/style/CMakeLists.txt +++ b/app/ui/style/CMakeLists.txt @@ -18,13 +18,13 @@ add_subdirectory(olive-dark) add_subdirectory(olive-light) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - PARENT_SCOPE + ${OLIVE_RESOURCES} + PARENT_SCOPE ) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - ui/style/style.h - ui/style/style.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + ui/style/style.h + ui/style/style.cpp + PARENT_SCOPE ) diff --git a/app/ui/style/HOWTO.md b/app/ui/style/HOWTO.md index e92b62d95..cc6d0cfbb 100644 --- a/app/ui/style/HOWTO.md +++ b/app/ui/style/HOWTO.md @@ -5,9 +5,11 @@ Oak Video Editor supports customization of its interface through CSS (Qt CSS) an To create a style, you'll need to create a CSS file called `style.css` and SVG icons. Feel free to duplicate an existing theme for reference. -To save performance, Oak Video Editor doesn't actually use the SVGs directly and will need them to be converted to multiple-size +To save performance, Oak Video Editor doesn't actually use the SVGs directly and will need them to be converted to +multiple-size PNGs. You don't need to worry about this step though, `generate-style.sh` will do this for you automatically. You'll need to re-run this script any time you change an SVG to update the PNG. -For internal use, `generate-style.sh` will also create a QRC so the style can be compiled into Oak Video Editor. You'll need to +For internal use, `generate-style.sh` will also create a QRC so the style can be compiled into Oak Video Editor. You'll +need to manually add the QRC to `ui/style/CMakeLists.txt` though. diff --git a/app/ui/style/olive-dark/CMakeLists.txt b/app/ui/style/olive-dark/CMakeLists.txt index 3a34de164..3cdaf5e6f 100644 --- a/app/ui/style/olive-dark/CMakeLists.txt +++ b/app/ui/style/olive-dark/CMakeLists.txt @@ -19,14 +19,14 @@ set(QRC_BODY "") list(TRANSFORM STYLE_RESOURCES PREPEND "png/") list(APPEND STYLE_RESOURCES "palette.ini") list(APPEND STYLE_RESOURCES "style.css") -foreach(ICON_FILE ${STYLE_RESOURCES}) - string(APPEND QRC_BODY "${ICON_FILE}\n") - configure_file("${ICON_FILE}" "${ICON_FILE}" COPYONLY) -endforeach() +foreach (ICON_FILE ${STYLE_RESOURCES}) + string(APPEND QRC_BODY "${ICON_FILE}\n") + configure_file("${ICON_FILE}" "${ICON_FILE}" COPYONLY) +endforeach () configure_file(res.qrc.in res.qrc @ONLY) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - ${CMAKE_CURRENT_BINARY_DIR}/res.qrc - PARENT_SCOPE + ${OLIVE_RESOURCES} + ${CMAKE_CURRENT_BINARY_DIR}/res.qrc + PARENT_SCOPE ) diff --git a/app/ui/style/olive-dark/palette.ini b/app/ui/style/olive-dark/palette.ini index 778c3d8fc..a2822a76e 100644 --- a/app/ui/style/olive-dark/palette.ini +++ b/app/ui/style/olive-dark/palette.ini @@ -1,18 +1,18 @@ [All] -AlternateBase=#353535 -Base=#191919 -BrightText=#FF0000 -Button=#353535 -ButtonText=#FFFFFF -Highlight=#2A82DA -HighlightedText=#FFFFFF -Link=#E0B040 -Text=#FFFFFF -ToolTipBase=#191919 -ToolTipText=#FFFFFF -Window=#353535 -WindowText=#FFFFFF +AlternateBase =#353535 +Base =#191919 +BrightText =#FF0000 +Button =#353535 +ButtonText =#FFFFFF +Highlight =#2A82DA +HighlightedText =#FFFFFF +Link =#E0B040 +Text =#FFFFFF +ToolTipBase =#191919 +ToolTipText =#FFFFFF +Window =#353535 +WindowText =#FFFFFF [Disabled] -ButtonText=#808080 -Text=#A0A0A0 +ButtonText =#808080 +Text =#A0A0A0 diff --git a/app/ui/style/olive-dark/style.css b/app/ui/style/olive-dark/style.css index 1965fc527..d5d5d32c3 100644 --- a/app/ui/style/olive-dark/style.css +++ b/app/ui/style/olive-dark/style.css @@ -20,10 +20,10 @@ /* Hack that forces checked QPushButtons to use dark color */ QPushButton:checked { - background: #191919; + background: #191919; } /* Make tab bar a little less chunky */ QTabBar { - font-size: 9pt; + font-size: 9pt; } diff --git a/app/ui/style/olive-dark/svg/add-button.svg b/app/ui/style/olive-dark/svg/add-button.svg index 9d282cbc2..cc5985009 100644 --- a/app/ui/style/olive-dark/svg/add-button.svg +++ b/app/ui/style/olive-dark/svg/add-button.svg @@ -18,157 +18,157 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="add-button.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./add-button.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/add-effect.svg b/app/ui/style/olive-dark/svg/add-effect.svg index e2e683a19..4689e5796 100644 --- a/app/ui/style/olive-dark/svg/add-effect.svg +++ b/app/ui/style/olive-dark/svg/add-effect.svg @@ -18,174 +18,174 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - + sodipodi:docname="add-effect.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./add-effect.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/add-transition.svg b/app/ui/style/olive-dark/svg/add-transition.svg index f8e25f146..7e8e8f500 100644 --- a/app/ui/style/olive-dark/svg/add-transition.svg +++ b/app/ui/style/olive-dark/svg/add-transition.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="add-transition.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./add-transition.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-center.svg b/app/ui/style/olive-dark/svg/align-center.svg index aa8add8e1..29609df8d 100644 --- a/app/ui/style/olive-dark/svg/align-center.svg +++ b/app/ui/style/olive-dark/svg/align-center.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-center.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-center.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-all.svg b/app/ui/style/olive-dark/svg/align-justify-all.svg index 79449595f..50129215f 100644 --- a/app/ui/style/olive-dark/svg/align-justify-all.svg +++ b/app/ui/style/olive-dark/svg/align-justify-all.svg @@ -18,170 +18,170 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-all.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-center.svg b/app/ui/style/olive-dark/svg/align-justify-center.svg index edf269256..a92c6f211 100644 --- a/app/ui/style/olive-dark/svg/align-justify-center.svg +++ b/app/ui/style/olive-dark/svg/align-justify-center.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-center.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-center.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-left.svg b/app/ui/style/olive-dark/svg/align-justify-left.svg index 32b92fb9d..f5dd71857 100644 --- a/app/ui/style/olive-dark/svg/align-justify-left.svg +++ b/app/ui/style/olive-dark/svg/align-justify-left.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-left.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-left.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-justify-right.svg b/app/ui/style/olive-dark/svg/align-justify-right.svg index a9462a530..27d8c0b11 100644 --- a/app/ui/style/olive-dark/svg/align-justify-right.svg +++ b/app/ui/style/olive-dark/svg/align-justify-right.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-right.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-right.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-left.svg b/app/ui/style/olive-dark/svg/align-left.svg index 2ab069535..622312fe8 100644 --- a/app/ui/style/olive-dark/svg/align-left.svg +++ b/app/ui/style/olive-dark/svg/align-left.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-left.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-left.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-right.svg b/app/ui/style/olive-dark/svg/align-right.svg index 3ca1ed7fc..7673a4f3e 100644 --- a/app/ui/style/olive-dark/svg/align-right.svg +++ b/app/ui/style/olive-dark/svg/align-right.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-right.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-right.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-v-bottom.svg b/app/ui/style/olive-dark/svg/align-v-bottom.svg index 8440a5633..a2a561b92 100644 --- a/app/ui/style/olive-dark/svg/align-v-bottom.svg +++ b/app/ui/style/olive-dark/svg/align-v-bottom.svg @@ -18,159 +18,159 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="align-v-bottom.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-v-middle.svg b/app/ui/style/olive-dark/svg/align-v-middle.svg index 0e57ef75d..24f872a53 100644 --- a/app/ui/style/olive-dark/svg/align-v-middle.svg +++ b/app/ui/style/olive-dark/svg/align-v-middle.svg @@ -18,159 +18,159 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="align-v-middle.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/align-v-top.svg b/app/ui/style/olive-dark/svg/align-v-top.svg index 4d282e953..daec41cf2 100644 --- a/app/ui/style/olive-dark/svg/align-v-top.svg +++ b/app/ui/style/olive-dark/svg/align-v-top.svg @@ -18,159 +18,159 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="align-v-top.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/arrow.svg b/app/ui/style/olive-dark/svg/arrow.svg index eef4295a1..91594fc07 100644 --- a/app/ui/style/olive-dark/svg/arrow.svg +++ b/app/ui/style/olive-dark/svg/arrow.svg @@ -18,162 +18,162 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="arrow2.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./arrow.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/audiosource.svg b/app/ui/style/olive-dark/svg/audiosource.svg index 3a6b0b19b..b35bda9fa 100644 --- a/app/ui/style/olive-dark/svg/audiosource.svg +++ b/app/ui/style/olive-dark/svg/audiosource.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="audiosource.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./audiosource.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/beam.svg b/app/ui/style/olive-dark/svg/beam.svg index a698ff405..fefac17cb 100644 --- a/app/ui/style/olive-dark/svg/beam.svg +++ b/app/ui/style/olive-dark/svg/beam.svg @@ -18,873 +18,873 @@ --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="beam2.svg" + inkscape:version="1.1 (c4e8f9e, 2021-05-24)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./beam.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/box.svg b/app/ui/style/olive-dark/svg/box.svg index 599644485..5a377415d 100644 --- a/app/ui/style/olive-dark/svg/box.svg +++ b/app/ui/style/olive-dark/svg/box.svg @@ -18,194 +18,194 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - - - + sodipodi:docname="box.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./box.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/clock.svg b/app/ui/style/olive-dark/svg/clock.svg index bff2ec571..5bffdaf79 100644 --- a/app/ui/style/olive-dark/svg/clock.svg +++ b/app/ui/style/olive-dark/svg/clock.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="clock.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./clock.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/color-picker.svg b/app/ui/style/olive-dark/svg/color-picker.svg index 5edc7af8b..00081b9c7 100644 --- a/app/ui/style/olive-dark/svg/color-picker.svg +++ b/app/ui/style/olive-dark/svg/color-picker.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="color-picker.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./paste.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/copy.svg b/app/ui/style/olive-dark/svg/copy.svg index 4e84a7782..61a18a622 100644 --- a/app/ui/style/olive-dark/svg/copy.svg +++ b/app/ui/style/olive-dark/svg/copy.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="copy.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./copy.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/diamond.svg b/app/ui/style/olive-dark/svg/diamond.svg index 82ecb579d..1272b8b6a 100644 --- a/app/ui/style/olive-dark/svg/diamond.svg +++ b/app/ui/style/olive-dark/svg/diamond.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="diamond.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./diamond.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/dirup.svg b/app/ui/style/olive-dark/svg/dirup.svg index 4d883515e..0d0c4f328 100644 --- a/app/ui/style/olive-dark/svg/dirup.svg +++ b/app/ui/style/olive-dark/svg/dirup.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="dirup.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./dirup.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/error.svg b/app/ui/style/olive-dark/svg/error.svg index 0c7ef277c..b66f9d0ff 100644 --- a/app/ui/style/olive-dark/svg/error.svg +++ b/app/ui/style/olive-dark/svg/error.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="error.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./error.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/export.svg b/app/ui/style/olive-dark/svg/export.svg index 938585f2d..326e74ee4 100644 --- a/app/ui/style/olive-dark/svg/export.svg +++ b/app/ui/style/olive-dark/svg/export.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/eye-closed.svg b/app/ui/style/olive-dark/svg/eye-closed.svg index ce8633c65..9cc35d71c 100644 --- a/app/ui/style/olive-dark/svg/eye-closed.svg +++ b/app/ui/style/olive-dark/svg/eye-closed.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/eye-opened.svg b/app/ui/style/olive-dark/svg/eye-opened.svg index 389a1f7f4..ba945f8e9 100644 --- a/app/ui/style/olive-dark/svg/eye-opened.svg +++ b/app/ui/style/olive-dark/svg/eye-opened.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/ff.svg b/app/ui/style/olive-dark/svg/ff.svg index 426c93fbd..f3bb714a5 100644 --- a/app/ui/style/olive-dark/svg/ff.svg +++ b/app/ui/style/olive-dark/svg/ff.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="ff.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./ff.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/filter.svg b/app/ui/style/olive-dark/svg/filter.svg index 255afc460..eeac50d8b 100644 --- a/app/ui/style/olive-dark/svg/filter.svg +++ b/app/ui/style/olive-dark/svg/filter.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="filter.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./filter.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/folder.svg b/app/ui/style/olive-dark/svg/folder.svg index c72d14d86..363d2e895 100644 --- a/app/ui/style/olive-dark/svg/folder.svg +++ b/app/ui/style/olive-dark/svg/folder.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="folder.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./folder.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/hand.svg b/app/ui/style/olive-dark/svg/hand.svg index 42d6a5663..dc598d809 100644 --- a/app/ui/style/olive-dark/svg/hand.svg +++ b/app/ui/style/olive-dark/svg/hand.svg @@ -18,157 +18,157 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="hand.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./hand.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/iconview.svg b/app/ui/style/olive-dark/svg/iconview.svg index 8e23610dd..3ebda87a5 100644 --- a/app/ui/style/olive-dark/svg/iconview.svg +++ b/app/ui/style/olive-dark/svg/iconview.svg @@ -18,181 +18,181 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="iconview.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./iconview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/imagesource.svg b/app/ui/style/olive-dark/svg/imagesource.svg index dd626cbb1..b9d8609ac 100644 --- a/app/ui/style/olive-dark/svg/imagesource.svg +++ b/app/ui/style/olive-dark/svg/imagesource.svg @@ -18,164 +18,164 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="imagesource.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./imagesource.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/import.svg b/app/ui/style/olive-dark/svg/import.svg index 2dd4c5097..2dcaf836d 100644 --- a/app/ui/style/olive-dark/svg/import.svg +++ b/app/ui/style/olive-dark/svg/import.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="import.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./import.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/listview.svg b/app/ui/style/olive-dark/svg/listview.svg index 112f5c0c6..d48a5337a 100644 --- a/app/ui/style/olive-dark/svg/listview.svg +++ b/app/ui/style/olive-dark/svg/listview.svg @@ -18,163 +18,163 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="listview.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./listview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/lock-closed.svg b/app/ui/style/olive-dark/svg/lock-closed.svg index 9728cdbac..71f82b669 100644 --- a/app/ui/style/olive-dark/svg/lock-closed.svg +++ b/app/ui/style/olive-dark/svg/lock-closed.svg @@ -18,161 +18,161 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/lock-opened.svg b/app/ui/style/olive-dark/svg/lock-opened.svg index b0a8c73c3..cd4fd52f0 100644 --- a/app/ui/style/olive-dark/svg/lock-opened.svg +++ b/app/ui/style/olive-dark/svg/lock-opened.svg @@ -18,161 +18,161 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/magnet.svg b/app/ui/style/olive-dark/svg/magnet.svg index bf4097125..a9ff7792d 100644 --- a/app/ui/style/olive-dark/svg/magnet.svg +++ b/app/ui/style/olive-dark/svg/magnet.svg @@ -18,196 +18,196 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - + sodipodi:docname="magnet.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./magnet.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/map.svg b/app/ui/style/olive-dark/svg/map.svg index a857e302a..8a194fd6e 100644 --- a/app/ui/style/olive-dark/svg/map.svg +++ b/app/ui/style/olive-dark/svg/map.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="map5.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive_pablo/icons/iconview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/minus.svg b/app/ui/style/olive-dark/svg/minus.svg index cf9413c77..c0f05635e 100644 --- a/app/ui/style/olive-dark/svg/minus.svg +++ b/app/ui/style/olive-dark/svg/minus.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="minus.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./minus.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/new.svg b/app/ui/style/olive-dark/svg/new.svg index 1977da1a9..44149968d 100644 --- a/app/ui/style/olive-dark/svg/new.svg +++ b/app/ui/style/olive-dark/svg/new.svg @@ -18,164 +18,164 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="new.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./new.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/next.svg b/app/ui/style/olive-dark/svg/next.svg index cd751974a..dbac1fcb8 100644 --- a/app/ui/style/olive-dark/svg/next.svg +++ b/app/ui/style/olive-dark/svg/next.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="next.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./next.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/nodes_btt.svg b/app/ui/style/olive-dark/svg/nodes_btt.svg index c29d7083c..08cf1c144 100644 --- a/app/ui/style/olive-dark/svg/nodes_btt.svg +++ b/app/ui/style/olive-dark/svg/nodes_btt.svg @@ -18,178 +18,178 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="nodes_btt.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_btt.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/nodes_ltr.svg b/app/ui/style/olive-dark/svg/nodes_ltr.svg index f190043b6..7f2e812a5 100644 --- a/app/ui/style/olive-dark/svg/nodes_ltr.svg +++ b/app/ui/style/olive-dark/svg/nodes_ltr.svg @@ -18,181 +18,181 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="nodes_ltr.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_ltr.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - - - - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + + + - diff --git a/app/ui/style/olive-dark/svg/nodes_rtl.svg b/app/ui/style/olive-dark/svg/nodes_rtl.svg index 681292fb3..3d74654b3 100644 --- a/app/ui/style/olive-dark/svg/nodes_rtl.svg +++ b/app/ui/style/olive-dark/svg/nodes_rtl.svg @@ -18,182 +18,182 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="nodes_rtl.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_rtl.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - - - - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + + + - diff --git a/app/ui/style/olive-dark/svg/nodes_ttb.svg b/app/ui/style/olive-dark/svg/nodes_ttb.svg index 40e2d8ac8..c5a669222 100644 --- a/app/ui/style/olive-dark/svg/nodes_ttb.svg +++ b/app/ui/style/olive-dark/svg/nodes_ttb.svg @@ -18,182 +18,182 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="nodes_ttb.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_ttb.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - - - - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + + + - diff --git a/app/ui/style/olive-dark/svg/open.svg b/app/ui/style/olive-dark/svg/open.svg index 6c4728533..82a71919f 100644 --- a/app/ui/style/olive-dark/svg/open.svg +++ b/app/ui/style/olive-dark/svg/open.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="open.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./open.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/paste.svg b/app/ui/style/olive-dark/svg/paste.svg index 64d5c65d9..1a1f72efd 100644 --- a/app/ui/style/olive-dark/svg/paste.svg +++ b/app/ui/style/olive-dark/svg/paste.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="paste.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./paste.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/pause.svg b/app/ui/style/olive-dark/svg/pause.svg index ae3e7df68..ef8e93f34 100644 --- a/app/ui/style/olive-dark/svg/pause.svg +++ b/app/ui/style/olive-dark/svg/pause.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="pause.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./pause.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/play.svg b/app/ui/style/olive-dark/svg/play.svg index df89c1130..484ad47db 100644 --- a/app/ui/style/olive-dark/svg/play.svg +++ b/app/ui/style/olive-dark/svg/play.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="play.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./play.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/plus.svg b/app/ui/style/olive-dark/svg/plus.svg index 9f9d05c47..597cfe519 100644 --- a/app/ui/style/olive-dark/svg/plus.svg +++ b/app/ui/style/olive-dark/svg/plus.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="plus.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./plus.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/prev.svg b/app/ui/style/olive-dark/svg/prev.svg index d98e68601..977ae9cf1 100644 --- a/app/ui/style/olive-dark/svg/prev.svg +++ b/app/ui/style/olive-dark/svg/prev.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="prev.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./prev.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/razor.svg b/app/ui/style/olive-dark/svg/razor.svg index 740d68129..76d45d2ea 100644 --- a/app/ui/style/olive-dark/svg/razor.svg +++ b/app/ui/style/olive-dark/svg/razor.svg @@ -18,155 +18,155 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="razor.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./razor.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/record.svg b/app/ui/style/olive-dark/svg/record.svg index 6d3663a41..1563973ea 100644 --- a/app/ui/style/olive-dark/svg/record.svg +++ b/app/ui/style/olive-dark/svg/record.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="record.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./record.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/redo.svg b/app/ui/style/olive-dark/svg/redo.svg index 75b9e88ed..c2e75a2c9 100644 --- a/app/ui/style/olive-dark/svg/redo.svg +++ b/app/ui/style/olive-dark/svg/redo.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="redo.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./redo.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/rew.svg b/app/ui/style/olive-dark/svg/rew.svg index 996cc0eea..e08fa2fd0 100644 --- a/app/ui/style/olive-dark/svg/rew.svg +++ b/app/ui/style/olive-dark/svg/rew.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="rew.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./rew.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/ripple.svg b/app/ui/style/olive-dark/svg/ripple.svg index 5673cc36f..4c7a42827 100644 --- a/app/ui/style/olive-dark/svg/ripple.svg +++ b/app/ui/style/olive-dark/svg/ripple.svg @@ -18,164 +18,164 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="ripple.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./ripple.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/rolling.svg b/app/ui/style/olive-dark/svg/rolling.svg index 0c9a60781..73e2f2600 100644 --- a/app/ui/style/olive-dark/svg/rolling.svg +++ b/app/ui/style/olive-dark/svg/rolling.svg @@ -18,175 +18,175 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - + sodipodi:docname="rolling.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./rolling.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/save.svg b/app/ui/style/olive-dark/svg/save.svg index 997b5711a..4aae58266 100644 --- a/app/ui/style/olive-dark/svg/save.svg +++ b/app/ui/style/olive-dark/svg/save.svg @@ -18,167 +18,167 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="save.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./save.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/sequence.svg b/app/ui/style/olive-dark/svg/sequence.svg index db8f34017..11df956eb 100644 --- a/app/ui/style/olive-dark/svg/sequence.svg +++ b/app/ui/style/olive-dark/svg/sequence.svg @@ -18,167 +18,167 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="sequence.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./sequence.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/slide.svg b/app/ui/style/olive-dark/svg/slide.svg index b2cf8c598..1f4c2f154 100644 --- a/app/ui/style/olive-dark/svg/slide.svg +++ b/app/ui/style/olive-dark/svg/slide.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="slide.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./slide.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/slip.svg b/app/ui/style/olive-dark/svg/slip.svg index aac20ad56..a689f98bc 100644 --- a/app/ui/style/olive-dark/svg/slip.svg +++ b/app/ui/style/olive-dark/svg/slip.svg @@ -18,168 +18,168 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="slip.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./slip.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/smooth_edges.svg b/app/ui/style/olive-dark/svg/smooth_edges.svg index 5a1b166cf..be4af4a6e 100644 --- a/app/ui/style/olive-dark/svg/smooth_edges.svg +++ b/app/ui/style/olive-dark/svg/smooth_edges.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="smooth_edges.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./smooth_edges.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/subtitles.svg b/app/ui/style/olive-dark/svg/subtitles.svg index b3f012cf8..156085726 100644 --- a/app/ui/style/olive-dark/svg/subtitles.svg +++ b/app/ui/style/olive-dark/svg/subtitles.svg @@ -18,316 +18,316 @@ --> - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="subtitles.svg" + inkscape:version="1.3-dev (4e3da4f, 2022-05-14)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/text-bold.svg b/app/ui/style/olive-dark/svg/text-bold.svg index 09e53afc6..2dda5ad99 100644 --- a/app/ui/style/olive-dark/svg/text-bold.svg +++ b/app/ui/style/olive-dark/svg/text-bold.svg @@ -18,155 +18,155 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="text-bold.svg" + inkscape:version="1.1 (c4e8f9e, 2021-05-24)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + - diff --git a/app/ui/style/olive-dark/svg/text-edit.svg b/app/ui/style/olive-dark/svg/text-edit.svg index e8c12c504..7755dfe33 100644 --- a/app/ui/style/olive-dark/svg/text-edit.svg +++ b/app/ui/style/olive-dark/svg/text-edit.svg @@ -18,277 +18,277 @@ --> - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="text-edit.svg" + inkscape:version="1.3-dev (e659668, 2022-05-03)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/text-italic.svg b/app/ui/style/olive-dark/svg/text-italic.svg index ecc36040c..2e6016958 100644 --- a/app/ui/style/olive-dark/svg/text-italic.svg +++ b/app/ui/style/olive-dark/svg/text-italic.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="text-italic.svg" + inkscape:version="1.1 (c4e8f9e, 2021-05-24)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-italic.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/text-small-caps.svg b/app/ui/style/olive-dark/svg/text-small-caps.svg index 73f75d5a8..2b92d0d25 100644 --- a/app/ui/style/olive-dark/svg/text-small-caps.svg +++ b/app/ui/style/olive-dark/svg/text-small-caps.svg @@ -18,177 +18,177 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="text-small-caps.svg" + inkscape:version="1.3-dev (50b0636d, 2022-04-18)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/text-strikethrough.svg b/app/ui/style/olive-dark/svg/text-strikethrough.svg index ec81221a9..f3ab328f1 100644 --- a/app/ui/style/olive-dark/svg/text-strikethrough.svg +++ b/app/ui/style/olive-dark/svg/text-strikethrough.svg @@ -18,186 +18,186 @@ --> - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="text-strikethrough.svg" + inkscape:version="1.2-alpha1 (f32a55a0, 2022-04-04)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-underline.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/text-underline.svg b/app/ui/style/olive-dark/svg/text-underline.svg index 971d74bc2..6ef454831 100644 --- a/app/ui/style/olive-dark/svg/text-underline.svg +++ b/app/ui/style/olive-dark/svg/text-underline.svg @@ -18,184 +18,184 @@ --> - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="text-underline.svg" + inkscape:version="1.2-alpha1 (f32a55a0, 2022-04-04)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-underline.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + - - diff --git a/app/ui/style/olive-dark/svg/track-tool.svg b/app/ui/style/olive-dark/svg/track-tool.svg index 01474f718..f58394589 100644 --- a/app/ui/style/olive-dark/svg/track-tool.svg +++ b/app/ui/style/olive-dark/svg/track-tool.svg @@ -18,209 +18,209 @@ --> - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="track-tool.svg" + inkscape:version="1.3-dev (50b0636d, 2022-04-18)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-underline.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/transition-tool.svg b/app/ui/style/olive-dark/svg/transition-tool.svg index 3290a8bc8..14812b58d 100644 --- a/app/ui/style/olive-dark/svg/transition-tool.svg +++ b/app/ui/style/olive-dark/svg/transition-tool.svg @@ -18,163 +18,163 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="transition-tool.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./transition-tool.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/treeview.svg b/app/ui/style/olive-dark/svg/treeview.svg index 5d5fb4113..0c0edd83b 100644 --- a/app/ui/style/olive-dark/svg/treeview.svg +++ b/app/ui/style/olive-dark/svg/treeview.svg @@ -18,170 +18,170 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="treeview.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./treeview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/tri-down.svg b/app/ui/style/olive-dark/svg/tri-down.svg index afb8bdda0..38dfde6af 100644 --- a/app/ui/style/olive-dark/svg/tri-down.svg +++ b/app/ui/style/olive-dark/svg/tri-down.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-down.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-down.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/tri-left.svg b/app/ui/style/olive-dark/svg/tri-left.svg index e880a11c0..57f3d73fb 100644 --- a/app/ui/style/olive-dark/svg/tri-left.svg +++ b/app/ui/style/olive-dark/svg/tri-left.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-left.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-left.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/tri-right.svg b/app/ui/style/olive-dark/svg/tri-right.svg index 0f93cbced..f4444eb8a 100644 --- a/app/ui/style/olive-dark/svg/tri-right.svg +++ b/app/ui/style/olive-dark/svg/tri-right.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-right.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-right.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/tri-up.svg b/app/ui/style/olive-dark/svg/tri-up.svg index 29d098230..b0a239922 100644 --- a/app/ui/style/olive-dark/svg/tri-up.svg +++ b/app/ui/style/olive-dark/svg/tri-up.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-up.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-up.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/undo.svg b/app/ui/style/olive-dark/svg/undo.svg index 0b8232af5..2d62cab49 100644 --- a/app/ui/style/olive-dark/svg/undo.svg +++ b/app/ui/style/olive-dark/svg/undo.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="undo.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./undo.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/videosource.svg b/app/ui/style/olive-dark/svg/videosource.svg index 141f1cdb5..5eedf2521 100644 --- a/app/ui/style/olive-dark/svg/videosource.svg +++ b/app/ui/style/olive-dark/svg/videosource.svg @@ -18,153 +18,153 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="videosource.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./videosource.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/zoomin.svg b/app/ui/style/olive-dark/svg/zoomin.svg index b2a14b2af..2515e819f 100644 --- a/app/ui/style/olive-dark/svg/zoomin.svg +++ b/app/ui/style/olive-dark/svg/zoomin.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="zoomin.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./zoomin.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-dark/svg/zoomout.svg b/app/ui/style/olive-dark/svg/zoomout.svg index 4c955e23f..e977ac262 100644 --- a/app/ui/style/olive-dark/svg/zoomout.svg +++ b/app/ui/style/olive-dark/svg/zoomout.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="zoomout.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./zoomout.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/CMakeLists.txt b/app/ui/style/olive-light/CMakeLists.txt index 3a34de164..3cdaf5e6f 100644 --- a/app/ui/style/olive-light/CMakeLists.txt +++ b/app/ui/style/olive-light/CMakeLists.txt @@ -19,14 +19,14 @@ set(QRC_BODY "") list(TRANSFORM STYLE_RESOURCES PREPEND "png/") list(APPEND STYLE_RESOURCES "palette.ini") list(APPEND STYLE_RESOURCES "style.css") -foreach(ICON_FILE ${STYLE_RESOURCES}) - string(APPEND QRC_BODY "${ICON_FILE}\n") - configure_file("${ICON_FILE}" "${ICON_FILE}" COPYONLY) -endforeach() +foreach (ICON_FILE ${STYLE_RESOURCES}) + string(APPEND QRC_BODY "${ICON_FILE}\n") + configure_file("${ICON_FILE}" "${ICON_FILE}" COPYONLY) +endforeach () configure_file(res.qrc.in res.qrc @ONLY) set(OLIVE_RESOURCES - ${OLIVE_RESOURCES} - ${CMAKE_CURRENT_BINARY_DIR}/res.qrc - PARENT_SCOPE + ${OLIVE_RESOURCES} + ${CMAKE_CURRENT_BINARY_DIR}/res.qrc + PARENT_SCOPE ) diff --git a/app/ui/style/olive-light/palette.ini b/app/ui/style/olive-light/palette.ini index 367ee06b3..9fa85bd46 100644 --- a/app/ui/style/olive-light/palette.ini +++ b/app/ui/style/olive-light/palette.ini @@ -1,18 +1,18 @@ [All] -AlternateBase=#D0D0D0 -Base=#F0F0F0 -BrightText=#FF0000 -Button=#D0D0D0 -ButtonText=#000000 -Highlight=#2A82DA -HighlightedText=#FFFFFF -Link=#2A82DA -Text=#000000 -ToolTipBase=#FFFFFF -ToolTipText=#000000 -Window=#D0D0D0 -WindowText=#000000 +AlternateBase =#D0D0D0 +Base =#F0F0F0 +BrightText =#FF0000 +Button =#D0D0D0 +ButtonText =#000000 +Highlight =#2A82DA +HighlightedText =#FFFFFF +Link =#2A82DA +Text =#000000 +ToolTipBase =#FFFFFF +ToolTipText =#000000 +Window =#D0D0D0 +WindowText =#000000 [Disabled] -ButtonText=#808080 -Text=#808080 +ButtonText =#808080 +Text =#808080 diff --git a/app/ui/style/olive-light/style.css b/app/ui/style/olive-light/style.css index ec767f01b..e6579595a 100644 --- a/app/ui/style/olive-light/style.css +++ b/app/ui/style/olive-light/style.css @@ -20,5 +20,5 @@ /* Make tab bar a little less chunky */ QTabBar { - font-size: 9pt; + font-size: 9pt; } diff --git a/app/ui/style/olive-light/svg/add-button.svg b/app/ui/style/olive-light/svg/add-button.svg index 896179044..c9cd96a83 100644 --- a/app/ui/style/olive-light/svg/add-button.svg +++ b/app/ui/style/olive-light/svg/add-button.svg @@ -18,157 +18,157 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="add-button.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./add-button.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/add-effect.svg b/app/ui/style/olive-light/svg/add-effect.svg index edb44a2d5..6f09aa930 100644 --- a/app/ui/style/olive-light/svg/add-effect.svg +++ b/app/ui/style/olive-light/svg/add-effect.svg @@ -18,174 +18,174 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - + sodipodi:docname="add-effect.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./add-effect.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/add-transition.svg b/app/ui/style/olive-light/svg/add-transition.svg index f87ae2415..229a5f33b 100644 --- a/app/ui/style/olive-light/svg/add-transition.svg +++ b/app/ui/style/olive-light/svg/add-transition.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="add-transition.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./add-transition.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-center.svg b/app/ui/style/olive-light/svg/align-center.svg index a16bd4310..8e6ed49b8 100644 --- a/app/ui/style/olive-light/svg/align-center.svg +++ b/app/ui/style/olive-light/svg/align-center.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-center.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-center.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-all.svg b/app/ui/style/olive-light/svg/align-justify-all.svg index 27236e3b0..ff27d1f6f 100644 --- a/app/ui/style/olive-light/svg/align-justify-all.svg +++ b/app/ui/style/olive-light/svg/align-justify-all.svg @@ -18,170 +18,170 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-all.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-center.svg b/app/ui/style/olive-light/svg/align-justify-center.svg index 2fa19dfca..170619e0a 100644 --- a/app/ui/style/olive-light/svg/align-justify-center.svg +++ b/app/ui/style/olive-light/svg/align-justify-center.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-center.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-center.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-left.svg b/app/ui/style/olive-light/svg/align-justify-left.svg index 3f544b073..b7fe9b3f2 100644 --- a/app/ui/style/olive-light/svg/align-justify-left.svg +++ b/app/ui/style/olive-light/svg/align-justify-left.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-left.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-left.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-justify-right.svg b/app/ui/style/olive-light/svg/align-justify-right.svg index d56e205c1..107f25b16 100644 --- a/app/ui/style/olive-light/svg/align-justify-right.svg +++ b/app/ui/style/olive-light/svg/align-justify-right.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-justify-right.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-right.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-left.svg b/app/ui/style/olive-light/svg/align-left.svg index c96028488..cbfd32534 100644 --- a/app/ui/style/olive-light/svg/align-left.svg +++ b/app/ui/style/olive-light/svg/align-left.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-left.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-left.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-right.svg b/app/ui/style/olive-light/svg/align-right.svg index c1ce64a82..f1ff37829 100644 --- a/app/ui/style/olive-light/svg/align-right.svg +++ b/app/ui/style/olive-light/svg/align-right.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="align-right.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-right.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-v-bottom.svg b/app/ui/style/olive-light/svg/align-v-bottom.svg index b4bddcdba..fe43144b2 100644 --- a/app/ui/style/olive-light/svg/align-v-bottom.svg +++ b/app/ui/style/olive-light/svg/align-v-bottom.svg @@ -18,159 +18,159 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="align-v-bottom.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-v-middle.svg b/app/ui/style/olive-light/svg/align-v-middle.svg index d71f1e0ba..68c5fd359 100644 --- a/app/ui/style/olive-light/svg/align-v-middle.svg +++ b/app/ui/style/olive-light/svg/align-v-middle.svg @@ -18,159 +18,159 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="align-v-middle.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/align-v-top.svg b/app/ui/style/olive-light/svg/align-v-top.svg index 97e1274be..59c462ed9 100644 --- a/app/ui/style/olive-light/svg/align-v-top.svg +++ b/app/ui/style/olive-light/svg/align-v-top.svg @@ -18,159 +18,159 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="align-v-top.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./align-justify-all.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/arrow.svg b/app/ui/style/olive-light/svg/arrow.svg index f1b26cb72..4d849f914 100644 --- a/app/ui/style/olive-light/svg/arrow.svg +++ b/app/ui/style/olive-light/svg/arrow.svg @@ -18,162 +18,162 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="arrow2.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./arrow.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/audiosource.svg b/app/ui/style/olive-light/svg/audiosource.svg index 27d45a5d4..776bb844f 100644 --- a/app/ui/style/olive-light/svg/audiosource.svg +++ b/app/ui/style/olive-light/svg/audiosource.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="audiosource.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./audiosource.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/beam.svg b/app/ui/style/olive-light/svg/beam.svg index 4fe6c0a0c..4e5fe8f86 100644 --- a/app/ui/style/olive-light/svg/beam.svg +++ b/app/ui/style/olive-light/svg/beam.svg @@ -18,873 +18,873 @@ --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="beam2.svg" + inkscape:version="1.1 (c4e8f9e, 2021-05-24)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./beam.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/box.svg b/app/ui/style/olive-light/svg/box.svg index a03aebdd8..f3a369258 100644 --- a/app/ui/style/olive-light/svg/box.svg +++ b/app/ui/style/olive-light/svg/box.svg @@ -18,194 +18,194 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - - - + sodipodi:docname="box.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./box.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/clock.svg b/app/ui/style/olive-light/svg/clock.svg index 90f22c99b..3b380a4e8 100644 --- a/app/ui/style/olive-light/svg/clock.svg +++ b/app/ui/style/olive-light/svg/clock.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="clock.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./clock.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/color-picker.svg b/app/ui/style/olive-light/svg/color-picker.svg index 6f9adb082..8d4504cf2 100644 --- a/app/ui/style/olive-light/svg/color-picker.svg +++ b/app/ui/style/olive-light/svg/color-picker.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="color-picker.svg" + inkscape:version="1.3-dev (1ca8b206, 2022-07-23)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./paste.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/copy.svg b/app/ui/style/olive-light/svg/copy.svg index 908770e3c..b6934ca16 100644 --- a/app/ui/style/olive-light/svg/copy.svg +++ b/app/ui/style/olive-light/svg/copy.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="copy.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./copy.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/diamond.svg b/app/ui/style/olive-light/svg/diamond.svg index 8726ae8ea..437b8a796 100644 --- a/app/ui/style/olive-light/svg/diamond.svg +++ b/app/ui/style/olive-light/svg/diamond.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="diamond.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./diamond.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/dirup.svg b/app/ui/style/olive-light/svg/dirup.svg index 347470454..d369cd02d 100644 --- a/app/ui/style/olive-light/svg/dirup.svg +++ b/app/ui/style/olive-light/svg/dirup.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="dirup.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./dirup.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/error.svg b/app/ui/style/olive-light/svg/error.svg index b3d14439d..db0bf57bd 100644 --- a/app/ui/style/olive-light/svg/error.svg +++ b/app/ui/style/olive-light/svg/error.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="error.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./error.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/export.svg b/app/ui/style/olive-light/svg/export.svg index 5e78f6b99..15e82496a 100644 --- a/app/ui/style/olive-light/svg/export.svg +++ b/app/ui/style/olive-light/svg/export.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/eye-closed.svg b/app/ui/style/olive-light/svg/eye-closed.svg index aec936241..b922e8114 100644 --- a/app/ui/style/olive-light/svg/eye-closed.svg +++ b/app/ui/style/olive-light/svg/eye-closed.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/eye-opened.svg b/app/ui/style/olive-light/svg/eye-opened.svg index c4b69c755..418df417e 100644 --- a/app/ui/style/olive-light/svg/eye-opened.svg +++ b/app/ui/style/olive-light/svg/eye-opened.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/ff.svg b/app/ui/style/olive-light/svg/ff.svg index 55f99936d..527cea1aa 100644 --- a/app/ui/style/olive-light/svg/ff.svg +++ b/app/ui/style/olive-light/svg/ff.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="ff.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./ff.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/filter.svg b/app/ui/style/olive-light/svg/filter.svg index 21b5b1404..6c2602938 100644 --- a/app/ui/style/olive-light/svg/filter.svg +++ b/app/ui/style/olive-light/svg/filter.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="filter.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./filter.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/folder.svg b/app/ui/style/olive-light/svg/folder.svg index 5f8cc9a1d..08ffd44c5 100644 --- a/app/ui/style/olive-light/svg/folder.svg +++ b/app/ui/style/olive-light/svg/folder.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="folder.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./folder.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/hand.svg b/app/ui/style/olive-light/svg/hand.svg index 9711a1e87..8186680d3 100644 --- a/app/ui/style/olive-light/svg/hand.svg +++ b/app/ui/style/olive-light/svg/hand.svg @@ -18,157 +18,157 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="hand.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./hand.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/iconview.svg b/app/ui/style/olive-light/svg/iconview.svg index 7670c3c7f..61550e3b7 100644 --- a/app/ui/style/olive-light/svg/iconview.svg +++ b/app/ui/style/olive-light/svg/iconview.svg @@ -18,181 +18,181 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="iconview.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./iconview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/imagesource.svg b/app/ui/style/olive-light/svg/imagesource.svg index 6dfcbb343..0e2617e19 100644 --- a/app/ui/style/olive-light/svg/imagesource.svg +++ b/app/ui/style/olive-light/svg/imagesource.svg @@ -18,164 +18,164 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="imagesource.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./imagesource.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/import.svg b/app/ui/style/olive-light/svg/import.svg index 3b65f47c2..16e8657fc 100644 --- a/app/ui/style/olive-light/svg/import.svg +++ b/app/ui/style/olive-light/svg/import.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="import.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./import.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/listview.svg b/app/ui/style/olive-light/svg/listview.svg index 0454664c0..291a99a92 100644 --- a/app/ui/style/olive-light/svg/listview.svg +++ b/app/ui/style/olive-light/svg/listview.svg @@ -18,163 +18,163 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="listview.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./listview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/lock-closed.svg b/app/ui/style/olive-light/svg/lock-closed.svg index 875599821..44686a2bf 100644 --- a/app/ui/style/olive-light/svg/lock-closed.svg +++ b/app/ui/style/olive-light/svg/lock-closed.svg @@ -18,161 +18,161 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/lock-opened.svg b/app/ui/style/olive-light/svg/lock-opened.svg index c94658250..0953522c8 100644 --- a/app/ui/style/olive-light/svg/lock-opened.svg +++ b/app/ui/style/olive-light/svg/lock-opened.svg @@ -18,161 +18,161 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="export.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./export.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/magnet.svg b/app/ui/style/olive-light/svg/magnet.svg index 0cddcc1e4..900915759 100644 --- a/app/ui/style/olive-light/svg/magnet.svg +++ b/app/ui/style/olive-light/svg/magnet.svg @@ -18,196 +18,196 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - + sodipodi:docname="magnet.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./magnet.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/map.svg b/app/ui/style/olive-light/svg/map.svg index 43e41e465..dd302684b 100644 --- a/app/ui/style/olive-light/svg/map.svg +++ b/app/ui/style/olive-light/svg/map.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="map5.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="/Users/pablo/olive_pablo/icons/iconview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/minus.svg b/app/ui/style/olive-light/svg/minus.svg index 89a0c36d7..cba520805 100644 --- a/app/ui/style/olive-light/svg/minus.svg +++ b/app/ui/style/olive-light/svg/minus.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="minus.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./minus.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/new.svg b/app/ui/style/olive-light/svg/new.svg index 9a3e4f71b..aff8100e6 100644 --- a/app/ui/style/olive-light/svg/new.svg +++ b/app/ui/style/olive-light/svg/new.svg @@ -18,164 +18,164 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="new.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./new.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/next.svg b/app/ui/style/olive-light/svg/next.svg index 5cea7dc61..9554ff5e1 100644 --- a/app/ui/style/olive-light/svg/next.svg +++ b/app/ui/style/olive-light/svg/next.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="next.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./next.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/nodes_btt.svg b/app/ui/style/olive-light/svg/nodes_btt.svg index d5ae19a8c..9df735777 100644 --- a/app/ui/style/olive-light/svg/nodes_btt.svg +++ b/app/ui/style/olive-light/svg/nodes_btt.svg @@ -18,178 +18,178 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="nodes_btt.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_btt.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/nodes_ltr.svg b/app/ui/style/olive-light/svg/nodes_ltr.svg index 390e421eb..e0399c688 100644 --- a/app/ui/style/olive-light/svg/nodes_ltr.svg +++ b/app/ui/style/olive-light/svg/nodes_ltr.svg @@ -18,181 +18,181 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="nodes_ltr.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_ltr.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - - - - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + + + - diff --git a/app/ui/style/olive-light/svg/nodes_rtl.svg b/app/ui/style/olive-light/svg/nodes_rtl.svg index 932af6eb0..8b7d68ee7 100644 --- a/app/ui/style/olive-light/svg/nodes_rtl.svg +++ b/app/ui/style/olive-light/svg/nodes_rtl.svg @@ -18,182 +18,182 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="nodes_rtl.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_rtl.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - - - - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + + + - diff --git a/app/ui/style/olive-light/svg/nodes_ttb.svg b/app/ui/style/olive-light/svg/nodes_ttb.svg index 8f6aa72e4..f8c51421a 100644 --- a/app/ui/style/olive-light/svg/nodes_ttb.svg +++ b/app/ui/style/olive-light/svg/nodes_ttb.svg @@ -18,182 +18,182 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="nodes_ttb.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./nodes_ttb.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - - - - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + + + - diff --git a/app/ui/style/olive-light/svg/open.svg b/app/ui/style/olive-light/svg/open.svg index 991645aac..8920a9960 100644 --- a/app/ui/style/olive-light/svg/open.svg +++ b/app/ui/style/olive-light/svg/open.svg @@ -18,172 +18,172 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="open.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./open.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/paste.svg b/app/ui/style/olive-light/svg/paste.svg index cfc57ae74..9691bcc60 100644 --- a/app/ui/style/olive-light/svg/paste.svg +++ b/app/ui/style/olive-light/svg/paste.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="paste.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./paste.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/pause.svg b/app/ui/style/olive-light/svg/pause.svg index 9c9524914..822b61f64 100644 --- a/app/ui/style/olive-light/svg/pause.svg +++ b/app/ui/style/olive-light/svg/pause.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="pause.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./pause.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/play.svg b/app/ui/style/olive-light/svg/play.svg index 5b8581305..219340848 100644 --- a/app/ui/style/olive-light/svg/play.svg +++ b/app/ui/style/olive-light/svg/play.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="play.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./play.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/plus.svg b/app/ui/style/olive-light/svg/plus.svg index 26ee76fd7..2c401a4d6 100644 --- a/app/ui/style/olive-light/svg/plus.svg +++ b/app/ui/style/olive-light/svg/plus.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="plus.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./plus.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/prev.svg b/app/ui/style/olive-light/svg/prev.svg index 69740e517..70909b39d 100644 --- a/app/ui/style/olive-light/svg/prev.svg +++ b/app/ui/style/olive-light/svg/prev.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="prev.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./prev.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/razor.svg b/app/ui/style/olive-light/svg/razor.svg index 740098ddb..20532777c 100644 --- a/app/ui/style/olive-light/svg/razor.svg +++ b/app/ui/style/olive-light/svg/razor.svg @@ -18,155 +18,155 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="razor.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./razor.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/record.svg b/app/ui/style/olive-light/svg/record.svg index 6d473dcf8..7c0fa639d 100644 --- a/app/ui/style/olive-light/svg/record.svg +++ b/app/ui/style/olive-light/svg/record.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="record.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./record.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/redo.svg b/app/ui/style/olive-light/svg/redo.svg index 994066105..53794f351 100644 --- a/app/ui/style/olive-light/svg/redo.svg +++ b/app/ui/style/olive-light/svg/redo.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="redo.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./redo.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/rew.svg b/app/ui/style/olive-light/svg/rew.svg index 7ac08624e..c9aebc2ae 100644 --- a/app/ui/style/olive-light/svg/rew.svg +++ b/app/ui/style/olive-light/svg/rew.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="rew.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./rew.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/ripple.svg b/app/ui/style/olive-light/svg/ripple.svg index 57dec756f..1a06ff9a7 100644 --- a/app/ui/style/olive-light/svg/ripple.svg +++ b/app/ui/style/olive-light/svg/ripple.svg @@ -18,164 +18,164 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="ripple.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./ripple.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/rolling.svg b/app/ui/style/olive-light/svg/rolling.svg index 0f5c799e8..fa196589d 100644 --- a/app/ui/style/olive-light/svg/rolling.svg +++ b/app/ui/style/olive-light/svg/rolling.svg @@ -18,175 +18,175 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - + sodipodi:docname="rolling.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./rolling.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/save.svg b/app/ui/style/olive-light/svg/save.svg index 8d00e9bb3..3c460b34c 100644 --- a/app/ui/style/olive-light/svg/save.svg +++ b/app/ui/style/olive-light/svg/save.svg @@ -18,167 +18,167 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="save.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./save.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/sequence.svg b/app/ui/style/olive-light/svg/sequence.svg index 22cb2aa75..cc300a423 100644 --- a/app/ui/style/olive-light/svg/sequence.svg +++ b/app/ui/style/olive-light/svg/sequence.svg @@ -18,167 +18,167 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="sequence.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./sequence.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/slide.svg b/app/ui/style/olive-light/svg/slide.svg index 7a85f09b8..5fb81f087 100644 --- a/app/ui/style/olive-light/svg/slide.svg +++ b/app/ui/style/olive-light/svg/slide.svg @@ -18,171 +18,171 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="slide.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./slide.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/slip.svg b/app/ui/style/olive-light/svg/slip.svg index 12265b4df..efbc6c3e5 100644 --- a/app/ui/style/olive-light/svg/slip.svg +++ b/app/ui/style/olive-light/svg/slip.svg @@ -18,168 +18,168 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="slip.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./slip.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/smooth_edges.svg b/app/ui/style/olive-light/svg/smooth_edges.svg index d5f638dc8..a7bd44438 100644 --- a/app/ui/style/olive-light/svg/smooth_edges.svg +++ b/app/ui/style/olive-light/svg/smooth_edges.svg @@ -18,151 +18,151 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="smooth_edges.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./smooth_edges.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/subtitles.svg b/app/ui/style/olive-light/svg/subtitles.svg index 78f317df5..43cad742b 100644 --- a/app/ui/style/olive-light/svg/subtitles.svg +++ b/app/ui/style/olive-light/svg/subtitles.svg @@ -18,316 +18,316 @@ --> - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="subtitles.svg" + inkscape:version="1.3-dev (4e3da4f, 2022-05-14)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/text-bold.svg b/app/ui/style/olive-light/svg/text-bold.svg index 4c84dc5f0..50de3817d 100644 --- a/app/ui/style/olive-light/svg/text-bold.svg +++ b/app/ui/style/olive-light/svg/text-bold.svg @@ -18,155 +18,155 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="text-bold.svg" + inkscape:version="1.1 (c4e8f9e, 2021-05-24)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + - diff --git a/app/ui/style/olive-light/svg/text-edit.svg b/app/ui/style/olive-light/svg/text-edit.svg index 927479eaa..21b56d315 100644 --- a/app/ui/style/olive-light/svg/text-edit.svg +++ b/app/ui/style/olive-light/svg/text-edit.svg @@ -18,277 +18,277 @@ --> - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="text-edit.svg" + inkscape:version="1.3-dev (e659668, 2022-05-03)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/text-italic.svg b/app/ui/style/olive-light/svg/text-italic.svg index 4a4ebb287..195163dc9 100644 --- a/app/ui/style/olive-light/svg/text-italic.svg +++ b/app/ui/style/olive-light/svg/text-italic.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="text-italic.svg" + inkscape:version="1.1 (c4e8f9e, 2021-05-24)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-italic.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/text-small-caps.svg b/app/ui/style/olive-light/svg/text-small-caps.svg index f8c2f7758..c7effe296 100644 --- a/app/ui/style/olive-light/svg/text-small-caps.svg +++ b/app/ui/style/olive-light/svg/text-small-caps.svg @@ -18,177 +18,177 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="text-small-caps.svg" + inkscape:version="1.3-dev (50b0636d, 2022-04-18)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-bold.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/text-strikethrough.svg b/app/ui/style/olive-light/svg/text-strikethrough.svg index 99d75c3fd..7785d47ee 100644 --- a/app/ui/style/olive-light/svg/text-strikethrough.svg +++ b/app/ui/style/olive-light/svg/text-strikethrough.svg @@ -18,186 +18,186 @@ --> - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="text-strikethrough.svg" + inkscape:version="1.2-alpha1 (f32a55a0, 2022-04-04)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-underline.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/text-underline.svg b/app/ui/style/olive-light/svg/text-underline.svg index 8f9e57e3b..4c89e12f8 100644 --- a/app/ui/style/olive-light/svg/text-underline.svg +++ b/app/ui/style/olive-light/svg/text-underline.svg @@ -18,184 +18,184 @@ --> - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - + sodipodi:docname="text-underline.svg" + inkscape:version="1.2-alpha1 (f32a55a0, 2022-04-04)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-underline.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + - + inkscape:groupmode="layer" + inkscape:label="Design" + id="layer1" + transform="translate(0,16)"> + + + + - - diff --git a/app/ui/style/olive-light/svg/track-tool.svg b/app/ui/style/olive-light/svg/track-tool.svg index 1da5d7ac3..05edebe6f 100644 --- a/app/ui/style/olive-light/svg/track-tool.svg +++ b/app/ui/style/olive-light/svg/track-tool.svg @@ -18,209 +18,209 @@ --> - - - - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="track-tool.svg" + inkscape:version="1.3-dev (50b0636d, 2022-04-18)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./text-underline.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/transition-tool.svg b/app/ui/style/olive-light/svg/transition-tool.svg index 5aec208e7..e3a3a632d 100644 --- a/app/ui/style/olive-light/svg/transition-tool.svg +++ b/app/ui/style/olive-light/svg/transition-tool.svg @@ -18,163 +18,163 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + sodipodi:docname="transition-tool.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./transition-tool.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/treeview.svg b/app/ui/style/olive-light/svg/treeview.svg index dbb58fea5..0f3596232 100644 --- a/app/ui/style/olive-light/svg/treeview.svg +++ b/app/ui/style/olive-light/svg/treeview.svg @@ -18,170 +18,170 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - + sodipodi:docname="treeview.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./treeview.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/tri-down.svg b/app/ui/style/olive-light/svg/tri-down.svg index 5e50f70b2..a9ba3d2c6 100644 --- a/app/ui/style/olive-light/svg/tri-down.svg +++ b/app/ui/style/olive-light/svg/tri-down.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-down.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-down.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/tri-left.svg b/app/ui/style/olive-light/svg/tri-left.svg index 792f3ca60..d1741cb67 100644 --- a/app/ui/style/olive-light/svg/tri-left.svg +++ b/app/ui/style/olive-light/svg/tri-left.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-left.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-left.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/tri-right.svg b/app/ui/style/olive-light/svg/tri-right.svg index 31839b2e0..2d7630235 100644 --- a/app/ui/style/olive-light/svg/tri-right.svg +++ b/app/ui/style/olive-light/svg/tri-right.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-right.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-right.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/tri-up.svg b/app/ui/style/olive-light/svg/tri-up.svg index be48afe1f..5bacc61e2 100644 --- a/app/ui/style/olive-light/svg/tri-up.svg +++ b/app/ui/style/olive-light/svg/tri-up.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="tri-up.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./tri-up.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/undo.svg b/app/ui/style/olive-light/svg/undo.svg index 8b514b5b4..640f14647 100644 --- a/app/ui/style/olive-light/svg/undo.svg +++ b/app/ui/style/olive-light/svg/undo.svg @@ -18,152 +18,152 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="undo.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./undo.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/videosource.svg b/app/ui/style/olive-light/svg/videosource.svg index ea8941f52..fc240a8b8 100644 --- a/app/ui/style/olive-light/svg/videosource.svg +++ b/app/ui/style/olive-light/svg/videosource.svg @@ -18,153 +18,153 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - + sodipodi:docname="videosource.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./videosource.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/zoomin.svg b/app/ui/style/olive-light/svg/zoomin.svg index 3c2f66f91..a43854ae9 100644 --- a/app/ui/style/olive-light/svg/zoomin.svg +++ b/app/ui/style/olive-light/svg/zoomin.svg @@ -18,156 +18,156 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="zoomin.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./zoomin.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/svg/zoomout.svg b/app/ui/style/olive-light/svg/zoomout.svg index 3a18254fc..ce06cc87e 100644 --- a/app/ui/style/olive-light/svg/zoomout.svg +++ b/app/ui/style/olive-light/svg/zoomout.svg @@ -18,158 +18,158 @@ --> - - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - + sodipodi:docname="zoomout.svg" + inkscape:version="1.2-dev (217ad3d, 2021-07-13)" + sodipodi:version="0.32" + id="svg2" + height="64" + width="64" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1" + viewBox="0 0 64 64" + inkscape:export-filename="./zoomout.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + diff --git a/app/undo/CMakeLists.txt b/app/undo/CMakeLists.txt index e04e22502..1b82d9b26 100644 --- a/app/undo/CMakeLists.txt +++ b/app/undo/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - undo/undocommand.h - undo/undocommand.cpp - undo/undostack.h - undo/undostack.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + undo/undocommand.h + undo/undocommand.cpp + undo/undostack.h + undo/undostack.cpp + PARENT_SCOPE ) diff --git a/app/widget/CMakeLists.txt b/app/widget/CMakeLists.txt index 26f2b10e8..e260bc4f5 100644 --- a/app/widget/CMakeLists.txt +++ b/app/widget/CMakeLists.txt @@ -56,6 +56,6 @@ add_subdirectory(toolbar) add_subdirectory(viewer) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/widget/audiomonitor/CMakeLists.txt b/app/widget/audiomonitor/CMakeLists.txt index d2e8d2b50..12397bc5b 100644 --- a/app/widget/audiomonitor/CMakeLists.txt +++ b/app/widget/audiomonitor/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/audiomonitor/audiomonitor.h - widget/audiomonitor/audiomonitor.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/audiomonitor/audiomonitor.h + widget/audiomonitor/audiomonitor.cpp + PARENT_SCOPE ) diff --git a/app/widget/bezier/CMakeLists.txt b/app/widget/bezier/CMakeLists.txt index 9c6460353..094488956 100644 --- a/app/widget/bezier/CMakeLists.txt +++ b/app/widget/bezier/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/bezier/bezierwidget.cpp - widget/bezier/bezierwidget.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/bezier/bezierwidget.cpp + widget/bezier/bezierwidget.h + PARENT_SCOPE ) diff --git a/app/widget/clickablelabel/CMakeLists.txt b/app/widget/clickablelabel/CMakeLists.txt index 0268a2a85..c9f055bcd 100644 --- a/app/widget/clickablelabel/CMakeLists.txt +++ b/app/widget/clickablelabel/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/clickablelabel/clickablelabel.h - widget/clickablelabel/clickablelabel.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/clickablelabel/clickablelabel.h + widget/clickablelabel/clickablelabel.cpp + PARENT_SCOPE ) diff --git a/app/widget/collapsebutton/CMakeLists.txt b/app/widget/collapsebutton/CMakeLists.txt index a2ae50765..7e6dadb8d 100644 --- a/app/widget/collapsebutton/CMakeLists.txt +++ b/app/widget/collapsebutton/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/collapsebutton/collapsebutton.h - widget/collapsebutton/collapsebutton.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/collapsebutton/collapsebutton.h + widget/collapsebutton/collapsebutton.cpp + PARENT_SCOPE ) diff --git a/app/widget/colorbutton/CMakeLists.txt b/app/widget/colorbutton/CMakeLists.txt index 6c3c5fee6..6b2e677a1 100644 --- a/app/widget/colorbutton/CMakeLists.txt +++ b/app/widget/colorbutton/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/colorbutton/colorbutton.h - widget/colorbutton/colorbutton.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/colorbutton/colorbutton.h + widget/colorbutton/colorbutton.cpp + PARENT_SCOPE ) diff --git a/app/widget/colorlabelmenu/CMakeLists.txt b/app/widget/colorlabelmenu/CMakeLists.txt index 0879cb270..571ec912d 100644 --- a/app/widget/colorlabelmenu/CMakeLists.txt +++ b/app/widget/colorlabelmenu/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/colorlabelmenu/colorcodingcombobox.cpp - widget/colorlabelmenu/colorcodingcombobox.h - widget/colorlabelmenu/colorlabelmenu.cpp - widget/colorlabelmenu/colorlabelmenu.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/colorlabelmenu/colorcodingcombobox.cpp + widget/colorlabelmenu/colorcodingcombobox.h + widget/colorlabelmenu/colorlabelmenu.cpp + widget/colorlabelmenu/colorlabelmenu.h + PARENT_SCOPE ) diff --git a/app/widget/colorwheel/CMakeLists.txt b/app/widget/colorwheel/CMakeLists.txt index fb1f43082..c39091c1b 100644 --- a/app/widget/colorwheel/CMakeLists.txt +++ b/app/widget/colorwheel/CMakeLists.txt @@ -15,20 +15,20 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/colorwheel/colorgradientwidget.h - widget/colorwheel/colorgradientwidget.cpp - widget/colorwheel/colorpreviewbox.h - widget/colorwheel/colorpreviewbox.cpp - widget/colorwheel/colorspacechooser.h - widget/colorwheel/colorspacechooser.cpp - widget/colorwheel/colorswatchchooser.h - widget/colorwheel/colorswatchchooser.cpp - widget/colorwheel/colorswatchwidget.h - widget/colorwheel/colorswatchwidget.cpp - widget/colorwheel/colorvalueswidget.h - widget/colorwheel/colorvalueswidget.cpp - widget/colorwheel/colorwheelwidget.h - widget/colorwheel/colorwheelwidget.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/colorwheel/colorgradientwidget.h + widget/colorwheel/colorgradientwidget.cpp + widget/colorwheel/colorpreviewbox.h + widget/colorwheel/colorpreviewbox.cpp + widget/colorwheel/colorspacechooser.h + widget/colorwheel/colorspacechooser.cpp + widget/colorwheel/colorswatchchooser.h + widget/colorwheel/colorswatchchooser.cpp + widget/colorwheel/colorswatchwidget.h + widget/colorwheel/colorswatchwidget.cpp + widget/colorwheel/colorvalueswidget.h + widget/colorwheel/colorvalueswidget.cpp + widget/colorwheel/colorwheelwidget.h + widget/colorwheel/colorwheelwidget.cpp + PARENT_SCOPE ) diff --git a/app/widget/columnedgridlayout/CMakeLists.txt b/app/widget/columnedgridlayout/CMakeLists.txt index bd9f28b35..26466f723 100644 --- a/app/widget/columnedgridlayout/CMakeLists.txt +++ b/app/widget/columnedgridlayout/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/columnedgridlayout/columnedgridlayout.h - widget/columnedgridlayout/columnedgridlayout.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/columnedgridlayout/columnedgridlayout.h + widget/columnedgridlayout/columnedgridlayout.cpp + PARENT_SCOPE ) diff --git a/app/widget/curvewidget/CMakeLists.txt b/app/widget/curvewidget/CMakeLists.txt index 23546f74d..56f26da3a 100644 --- a/app/widget/curvewidget/CMakeLists.txt +++ b/app/widget/curvewidget/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/curvewidget/curveview.cpp - widget/curvewidget/curveview.h - widget/curvewidget/curvewidget.cpp - widget/curvewidget/curvewidget.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/curvewidget/curveview.cpp + widget/curvewidget/curveview.h + widget/curvewidget/curvewidget.cpp + widget/curvewidget/curvewidget.h + PARENT_SCOPE ) diff --git a/app/widget/filefield/CMakeLists.txt b/app/widget/filefield/CMakeLists.txt index 075a7aaf4..8561f7cb6 100644 --- a/app/widget/filefield/CMakeLists.txt +++ b/app/widget/filefield/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/filefield/filefield.cpp - widget/filefield/filefield.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/filefield/filefield.cpp + widget/filefield/filefield.h + PARENT_SCOPE ) diff --git a/app/widget/flowlayout/CMakeLists.txt b/app/widget/flowlayout/CMakeLists.txt index 74bf744b9..6e09e6680 100644 --- a/app/widget/flowlayout/CMakeLists.txt +++ b/app/widget/flowlayout/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/flowlayout/flowlayout.h - widget/flowlayout/flowlayout.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/flowlayout/flowlayout.h + widget/flowlayout/flowlayout.cpp + PARENT_SCOPE ) diff --git a/app/widget/focusablelineedit/CMakeLists.txt b/app/widget/focusablelineedit/CMakeLists.txt index e040eb8a0..106f4520b 100644 --- a/app/widget/focusablelineedit/CMakeLists.txt +++ b/app/widget/focusablelineedit/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/focusablelineedit/focusablelineedit.h - widget/focusablelineedit/focusablelineedit.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/focusablelineedit/focusablelineedit.h + widget/focusablelineedit/focusablelineedit.cpp + PARENT_SCOPE ) diff --git a/app/widget/handmovableview/CMakeLists.txt b/app/widget/handmovableview/CMakeLists.txt index d69a10d4d..65158064a 100644 --- a/app/widget/handmovableview/CMakeLists.txt +++ b/app/widget/handmovableview/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/handmovableview/handmovableview.h - widget/handmovableview/handmovableview.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/handmovableview/handmovableview.h + widget/handmovableview/handmovableview.cpp + PARENT_SCOPE ) diff --git a/app/widget/history/CMakeLists.txt b/app/widget/history/CMakeLists.txt index 1ccd89717..d7692fdd8 100644 --- a/app/widget/history/CMakeLists.txt +++ b/app/widget/history/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/history/historywidget.cpp - widget/history/historywidget.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/history/historywidget.cpp + widget/history/historywidget.h + PARENT_SCOPE ) diff --git a/app/widget/keyframeview/CMakeLists.txt b/app/widget/keyframeview/CMakeLists.txt index 3c18f5453..9e982fd60 100644 --- a/app/widget/keyframeview/CMakeLists.txt +++ b/app/widget/keyframeview/CMakeLists.txt @@ -15,12 +15,12 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/keyframeview/keyframeview.cpp - widget/keyframeview/keyframeview.h - widget/keyframeview/keyframeviewinputconnection.cpp - widget/keyframeview/keyframeviewinputconnection.h - widget/keyframeview/keyframeviewundo.cpp - widget/keyframeview/keyframeviewundo.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/keyframeview/keyframeview.cpp + widget/keyframeview/keyframeview.h + widget/keyframeview/keyframeviewinputconnection.cpp + widget/keyframeview/keyframeviewinputconnection.h + widget/keyframeview/keyframeviewundo.cpp + widget/keyframeview/keyframeviewundo.h + PARENT_SCOPE ) diff --git a/app/widget/manageddisplay/CMakeLists.txt b/app/widget/manageddisplay/CMakeLists.txt index 68b0be6e5..dd4e7cf70 100644 --- a/app/widget/manageddisplay/CMakeLists.txt +++ b/app/widget/manageddisplay/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/manageddisplay/manageddisplay.h - widget/manageddisplay/manageddisplay.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/manageddisplay/manageddisplay.h + widget/manageddisplay/manageddisplay.cpp + PARENT_SCOPE ) diff --git a/app/widget/manageddisplay/manageddisplay.cpp b/app/widget/manageddisplay/manageddisplay.cpp index e9cc311db..38c9f98b1 100644 --- a/app/widget/manageddisplay/manageddisplay.cpp +++ b/app/widget/manageddisplay/manageddisplay.cpp @@ -54,7 +54,8 @@ ManagedDisplayWidget::ManagedDisplayWidget(QWidget *parent) RenderManager::instance()->requested_backend()), this); if (!dynamic_renderer->Load()) { - qWarning() << "Failed to load dynamic render backend for viewer, falling back to OpenGL"; + qWarning() + << "Failed to load dynamic render backend for viewer, falling back to OpenGL"; delete dynamic_renderer; attached_renderer_ = new OpenGLRenderer(this); } else { diff --git a/app/widget/menu/CMakeLists.txt b/app/widget/menu/CMakeLists.txt index bf344cef8..4620c05ea 100644 --- a/app/widget/menu/CMakeLists.txt +++ b/app/widget/menu/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/menu/menu.cpp - widget/menu/menu.h - widget/menu/menushared.cpp - widget/menu/menushared.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/menu/menu.cpp + widget/menu/menu.h + widget/menu/menushared.cpp + widget/menu/menushared.h + PARENT_SCOPE ) diff --git a/app/widget/multicam/CMakeLists.txt b/app/widget/multicam/CMakeLists.txt index 2e7df53a7..0a6356ea5 100644 --- a/app/widget/multicam/CMakeLists.txt +++ b/app/widget/multicam/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/multicam/multicamdisplay.cpp - widget/multicam/multicamdisplay.h - widget/multicam/multicamwidget.cpp - widget/multicam/multicamwidget.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/multicam/multicamdisplay.cpp + widget/multicam/multicamdisplay.h + widget/multicam/multicamwidget.cpp + widget/multicam/multicamwidget.h + PARENT_SCOPE ) diff --git a/app/widget/nodecombobox/CMakeLists.txt b/app/widget/nodecombobox/CMakeLists.txt index e26165b77..bee2adce4 100644 --- a/app/widget/nodecombobox/CMakeLists.txt +++ b/app/widget/nodecombobox/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/nodecombobox/nodecombobox.h - widget/nodecombobox/nodecombobox.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/nodecombobox/nodecombobox.h + widget/nodecombobox/nodecombobox.cpp + PARENT_SCOPE ) diff --git a/app/widget/nodeparamview/nodeparambutton.h b/app/widget/nodeparamview/nodeparambutton.h index 1c427b835..840eb0575 100644 --- a/app/widget/nodeparamview/nodeparambutton.h +++ b/app/widget/nodeparamview/nodeparambutton.h @@ -23,25 +23,25 @@ #include -class NodeParamButton : public QPushButton{ -Q_OBJECT +class NodeParamButton : public QPushButton { + Q_OBJECT public: - NodeParamButton(QString name, QWidget *parent = nullptr):QPushButton(parent) + NodeParamButton(QString name, QWidget *parent = nullptr) + : QPushButton(parent) { - this->name_=name; + this->name_ = name; connect(this, &QPushButton::clicked, this, &NodeParamButton::pressed); } signals: void onPressed(QString name); private slots: - void pressed(){ + void pressed() + { emit onPressed(name_); } + private: QString name_; - }; - - #endif //NODEPARAMBUTTON_H diff --git a/app/widget/nodeparamview/nodeparamviewitem.cpp b/app/widget/nodeparamview/nodeparamviewitem.cpp index 2a32ee845..526ab169d 100644 --- a/app/widget/nodeparamview/nodeparamviewitem.cpp +++ b/app/widget/nodeparamview/nodeparamviewitem.cpp @@ -254,8 +254,11 @@ NodeParamViewItemBody::NodeParamViewItemBody( { n, input }); if (!(n->GetInputFlags(input) & kInputFlagHidden)) { - QString page_label = n->GetInputProperty(input, QStringLiteral("ui_page")).toString(); - QString group_label = n->GetInputProperty(input, QStringLiteral("ui_group")).toString(); + QString page_label = + n->GetInputProperty(input, QStringLiteral("ui_page")).toString(); + QString group_label = + n->GetInputProperty(input, QStringLiteral("ui_group")) + .toString(); if (!page_label.isEmpty() && page_label != current_page) { QLabel *page_title = new QLabel(page_label, this); QFont f = page_title->font(); diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index 1ce418054..adb395323 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -120,8 +120,8 @@ void NodeParamViewWidgetBridge::CreateWidgets() QStringList items = GetInnerInput().GetComboBoxStrings(); QStringList values = GetInnerInput().GetProperty("combo_value_str").toStringList(); - const bool use_value_data = - (t == NodeValue::kStrCombo) && !values.isEmpty(); + const bool use_value_data = (t == NodeValue::kStrCombo) && + !values.isEmpty(); for (int i = 0; i < items.size(); ++i) { const QString &label = items.at(i); if (use_value_data && i < values.size()) { @@ -146,17 +146,15 @@ void NodeParamViewWidgetBridge::CreateWidgets() break; } case NodeValue::kColor: { - if (GetInnerInput().GetProperty("color_semantic") - .toString() == QStringLiteral("scalar")) { + if (GetInnerInput().GetProperty("color_semantic").toString() == + QStringLiteral("scalar")) { CreateSliders(4, parent); } else { ColorButton *color_button = new ColorButton( - GetInnerInput().node()->project()->color_manager(), - parent); + GetInnerInput().node()->project()->color_manager(), parent); widgets_.append(color_button); - connect( - color_button, &ColorButton::ColorChanged, this, - &NodeParamViewWidgetBridge::WidgetCallback); + connect(color_button, &ColorButton::ColorChanged, this, + &NodeParamViewWidgetBridge::WidgetCallback); } break; } @@ -203,11 +201,13 @@ void NodeParamViewWidgetBridge::CreateWidgets() break; } case NodeValue::kPushButton: { - NodeInput input=GetInnerInput(); - NodeParamButton *button=new NodeParamButton(input.name(),parent); + NodeInput input = GetInnerInput(); + NodeParamButton *button = new NodeParamButton(input.name(), parent); widgets_.append(button); - plugin::PluginNode* plugin_node=dynamic_cast(input.node()); - connect(button, &NodeParamButton::onPressed, plugin_node, &plugin::PluginNode::pushButtonClicked); + plugin::PluginNode *plugin_node = + dynamic_cast(input.node()); + connect(button, &NodeParamButton::onPressed, plugin_node, + &plugin::PluginNode::pushButtonClicked); } } @@ -329,15 +329,13 @@ void NodeParamViewWidgetBridge::WidgetCallback() break; } case NodeValue::kColor: { - if (GetInnerInput().GetProperty("color_semantic") - .toString() == QStringLiteral("scalar")) { - FloatSlider *slider = - static_cast(sender()); + if (GetInnerInput().GetProperty("color_semantic").toString() == + QStringLiteral("scalar")) { + FloatSlider *slider = static_cast(sender()); ProcessSlider(slider, slider->GetValue()); } else { // Sender is a ColorButton - ManagedColor c = - static_cast(sender())->GetColor(); + ManagedColor c = static_cast(sender())->GetColor(); MultiUndoCommand *command = new MultiUndoCommand(); @@ -348,22 +346,20 @@ void NodeParamViewWidgetBridge::WidgetCallback() Node *n = GetInnerInput().node(); n->blockSignals(true); - n->SetInputProperty( - GetInnerInput().input(), QStringLiteral("col_input"), - c.color_input()); - n->SetInputProperty( - GetInnerInput().input(), QStringLiteral("col_display"), - c.color_output().display()); - n->SetInputProperty( - GetInnerInput().input(), QStringLiteral("col_view"), - c.color_output().view()); - n->SetInputProperty( - GetInnerInput().input(), QStringLiteral("col_look"), - c.color_output().look()); + n->SetInputProperty(GetInnerInput().input(), + QStringLiteral("col_input"), c.color_input()); + n->SetInputProperty(GetInnerInput().input(), + QStringLiteral("col_display"), + c.color_output().display()); + n->SetInputProperty(GetInnerInput().input(), + QStringLiteral("col_view"), + c.color_output().view()); + n->SetInputProperty(GetInnerInput().input(), + QStringLiteral("col_look"), + c.color_output().look()); n->blockSignals(false); - Core::instance()->undo_stack()->push(command, - GetCommandName()); + Core::instance()->undo_stack()->push(command, GetCommandName()); } break; } @@ -496,7 +492,8 @@ void NodeParamViewWidgetBridge::UpdateWidgetValues() case NodeValue::kBinary: { NodeParamViewTextEdit *e = static_cast(widgets_.first()); - QByteArray bytes = GetInnerInput().GetValueAtTime(node_time).toByteArray(); + QByteArray bytes = + GetInnerInput().GetValueAtTime(node_time).toByteArray(); e->setTextPreservingCursor(QString::fromUtf8(bytes.toBase64())); break; } @@ -558,11 +555,9 @@ void NodeParamViewWidgetBridge::UpdateWidgetValues() break; } case NodeValue::kColor: { - if (GetInnerInput().GetProperty("color_semantic") - .toString() == QStringLiteral("scalar")) { - Color c = GetInnerInput() - .GetValueAtTime(node_time) - .value(); + if (GetInnerInput().GetProperty("color_semantic").toString() == + QStringLiteral("scalar")) { + Color c = GetInnerInput().GetValueAtTime(node_time).value(); static_cast(widgets_.at(0)) ->SetValue(static_cast(c.red())); static_cast(widgets_.at(1)) @@ -572,27 +567,19 @@ void NodeParamViewWidgetBridge::UpdateWidgetValues() static_cast(widgets_.at(3)) ->SetValue(static_cast(c.alpha())); } else { - ManagedColor mc = GetInnerInput() - .GetValueAtTime(node_time) - .value(); + ManagedColor mc = + GetInnerInput().GetValueAtTime(node_time).value(); mc.set_color_input( GetInnerInput().GetProperty("col_input").toString()); - QString d = GetInnerInput() - .GetProperty("col_display") - .toString(); - QString v = GetInnerInput() - .GetProperty("col_view") - .toString(); - QString l = GetInnerInput() - .GetProperty("col_look") - .toString(); + QString d = GetInnerInput().GetProperty("col_display").toString(); + QString v = GetInnerInput().GetProperty("col_view").toString(); + QString l = GetInnerInput().GetProperty("col_look").toString(); mc.set_color_output(ColorTransform(d, v, l)); - static_cast(widgets_.first()) - ->SetColor(mc); + static_cast(widgets_.first())->SetColor(mc); } break; } @@ -868,8 +855,8 @@ void NodeParamViewWidgetBridge::SetProperty(const QString &key, QStringList items = value.toStringList(); QStringList values = GetInnerInput().GetProperty("combo_value_str").toStringList(); - const bool use_value_data = - (data_type == NodeValue::kStrCombo) && !values.isEmpty(); + const bool use_value_data = (data_type == NodeValue::kStrCombo) && + !values.isEmpty(); int index = 0; for (int i = 0; i < items.size(); ++i) { const QString &s = items.at(i); diff --git a/app/widget/nodetableview/CMakeLists.txt b/app/widget/nodetableview/CMakeLists.txt index 2132ccd6a..dc8b3de84 100644 --- a/app/widget/nodetableview/CMakeLists.txt +++ b/app/widget/nodetableview/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/nodetableview/nodetableview.cpp - widget/nodetableview/nodetableview.h - widget/nodetableview/nodetablewidget.cpp - widget/nodetableview/nodetablewidget.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/nodetableview/nodetableview.cpp + widget/nodetableview/nodetableview.h + widget/nodetableview/nodetablewidget.cpp + widget/nodetableview/nodetablewidget.h + PARENT_SCOPE ) diff --git a/app/widget/nodetreeview/CMakeLists.txt b/app/widget/nodetreeview/CMakeLists.txt index a8b5b6dce..2a7cfd6a3 100644 --- a/app/widget/nodetreeview/CMakeLists.txt +++ b/app/widget/nodetreeview/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/nodetreeview/nodetreeview.h - widget/nodetreeview/nodetreeview.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/nodetreeview/nodetreeview.h + widget/nodetreeview/nodetreeview.cpp + PARENT_SCOPE ) diff --git a/app/widget/nodevaluetree/CMakeLists.txt b/app/widget/nodevaluetree/CMakeLists.txt index 44ed10d5b..21dc0b881 100644 --- a/app/widget/nodevaluetree/CMakeLists.txt +++ b/app/widget/nodevaluetree/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/nodevaluetree/nodevaluetree.cpp - widget/nodevaluetree/nodevaluetree.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/nodevaluetree/nodevaluetree.cpp + widget/nodevaluetree/nodevaluetree.h + PARENT_SCOPE ) diff --git a/app/widget/nodeview/CMakeLists.txt b/app/widget/nodeview/CMakeLists.txt index 184ef1190..b36de5cab 100644 --- a/app/widget/nodeview/CMakeLists.txt +++ b/app/widget/nodeview/CMakeLists.txt @@ -15,25 +15,25 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/nodeview/nodeview.cpp - widget/nodeview/nodeview.h - widget/nodeview/nodeviewcommon.h - widget/nodeview/nodeviewcontext.cpp - widget/nodeview/nodeviewcontext.h - widget/nodeview/nodeviewedge.cpp - widget/nodeview/nodeviewedge.h - widget/nodeview/nodeviewitem.cpp - widget/nodeview/nodeviewitem.h - widget/nodeview/nodeviewitemconnector.cpp - widget/nodeview/nodeviewitemconnector.h - widget/nodeview/nodeviewminimap.cpp - widget/nodeview/nodeviewminimap.h - widget/nodeview/nodeviewscene.cpp - widget/nodeview/nodeviewscene.h - widget/nodeview/nodeviewtoolbar.cpp - widget/nodeview/nodeviewtoolbar.h - widget/nodeview/nodewidget.cpp - widget/nodeview/nodewidget.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/nodeview/nodeview.cpp + widget/nodeview/nodeview.h + widget/nodeview/nodeviewcommon.h + widget/nodeview/nodeviewcontext.cpp + widget/nodeview/nodeviewcontext.h + widget/nodeview/nodeviewedge.cpp + widget/nodeview/nodeviewedge.h + widget/nodeview/nodeviewitem.cpp + widget/nodeview/nodeviewitem.h + widget/nodeview/nodeviewitemconnector.cpp + widget/nodeview/nodeviewitemconnector.h + widget/nodeview/nodeviewminimap.cpp + widget/nodeview/nodeviewminimap.h + widget/nodeview/nodeviewscene.cpp + widget/nodeview/nodeviewscene.h + widget/nodeview/nodeviewtoolbar.cpp + widget/nodeview/nodeviewtoolbar.h + widget/nodeview/nodewidget.cpp + widget/nodeview/nodewidget.h + PARENT_SCOPE ) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index cd7e1a9a6..150eb8329 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -74,11 +74,15 @@ NodeView::NodeView(QWidget *parent) SetFlowDirection(NodeViewCommon::kLeftToRight); - show_in_param_editor_action_ = new QAction(tr("Show in Parameter Editor"), this); - Menu::ConformItem(show_in_param_editor_action_, QStringLiteral("shownodeparams"), QKeySequence(tr("Shift+P"))); + show_in_param_editor_action_ = + new QAction(tr("Show in Parameter Editor"), this); + Menu::ConformItem(show_in_param_editor_action_, + QStringLiteral("shownodeparams"), + QKeySequence(tr("Shift+P"))); show_in_param_editor_action_->setShortcutContext(Qt::WindowShortcut); addAction(show_in_param_editor_action_); - connect(show_in_param_editor_action_, &QAction::triggered, this, &NodeView::ShowSelectedNodeInParamEditor); + connect(show_in_param_editor_action_, &QAction::triggered, this, + &NodeView::ShowSelectedNodeInParamEditor); UpdateSceneBoundingRect(); connect(&scene_, &QGraphicsScene::changed, this, @@ -838,8 +842,7 @@ void NodeView::ShowContextMenu(const QPoint &pos) QVector selected = scene_.GetSelectedItems(); - NodeViewItem *item_under_cursor = - dynamic_cast(itemAt(pos)); + NodeViewItem *item_under_cursor = dynamic_cast(itemAt(pos)); if (item_under_cursor && !selected.contains(item_under_cursor)) { // Right-clicked a node that isn't part of the current selection, @@ -879,8 +882,8 @@ void NodeView::ShowContextMenu(const QPoint &pos) m.addSeparator(); // Show in Parameter Editor - QAction *show_in_param_editor_action = m.addAction( - tr("Show in Parameter Editor")); + QAction *show_in_param_editor_action = + m.addAction(tr("Show in Parameter Editor")); show_in_param_editor_action->setShortcut( show_in_param_editor_action_->shortcut()); connect(show_in_param_editor_action, &QAction::triggered, this, @@ -1673,8 +1676,8 @@ void NodeView::ShowSelectedNodeInParamEditor() selection_with_contexts.reserve(selected.size()); foreach (NodeViewItem *item, selected) { if (item && item->GetNode()) { - selection_with_contexts.append(Node::ContextPair{ - item->GetNode(), item->GetContext()}); + selection_with_contexts.append( + Node::ContextPair{ item->GetNode(), item->GetContext() }); } } @@ -1684,7 +1687,7 @@ void NodeView::ShowSelectedNodeInParamEditor() if (PanelManager::instance()) { if (PanelWidget *panel = PanelManager::instance()->GetPanelWithName( - QStringLiteral("ParamPanel"))) { + QStringLiteral("ParamPanel"))) { panel->show(); QMetaObject::invokeMethod(panel, &PanelWidget::raise, Qt::QueuedConnection); diff --git a/app/widget/nodeview/nodeviewitem.cpp b/app/widget/nodeview/nodeviewitem.cpp index 533be911c..d84253b03 100644 --- a/app/widget/nodeview/nodeviewitem.cpp +++ b/app/widget/nodeview/nodeviewitem.cpp @@ -455,10 +455,9 @@ void NodeViewItem::paint(QPainter *painter, int badge_width = qMax(text_width + pad * 2, text_height + pad); int badge_height = text_height + pad; - QRectF badge_rect( - single_unit_rect.right() - badge_width - 4, - single_unit_rect.top() + 4, - badge_width, badge_height); + QRectF badge_rect(single_unit_rect.right() - badge_width - 4, + single_unit_rect.top() + 4, badge_width, + badge_height); painter->setPen(Qt::NoPen); painter->setBrush(QColor(220, 50, 47)); diff --git a/app/widget/path/CMakeLists.txt b/app/widget/path/CMakeLists.txt index 9902d40b5..781daeb91 100644 --- a/app/widget/path/CMakeLists.txt +++ b/app/widget/path/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/path/pathwidget.h - widget/path/pathwidget.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/path/pathwidget.h + widget/path/pathwidget.cpp + PARENT_SCOPE ) diff --git a/app/widget/pixelsampler/CMakeLists.txt b/app/widget/pixelsampler/CMakeLists.txt index 212184c9f..a2f3c4742 100644 --- a/app/widget/pixelsampler/CMakeLists.txt +++ b/app/widget/pixelsampler/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/pixelsampler/pixelsampler.h - widget/pixelsampler/pixelsampler.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/pixelsampler/pixelsampler.h + widget/pixelsampler/pixelsampler.cpp + PARENT_SCOPE ) diff --git a/app/widget/playbackcontrols/CMakeLists.txt b/app/widget/playbackcontrols/CMakeLists.txt index aa10921ee..3786928d2 100644 --- a/app/widget/playbackcontrols/CMakeLists.txt +++ b/app/widget/playbackcontrols/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/playbackcontrols/dragbutton.h - widget/playbackcontrols/dragbutton.cpp - widget/playbackcontrols/playbackcontrols.h - widget/playbackcontrols/playbackcontrols.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/playbackcontrols/dragbutton.h + widget/playbackcontrols/dragbutton.cpp + widget/playbackcontrols/playbackcontrols.h + widget/playbackcontrols/playbackcontrols.cpp + PARENT_SCOPE ) diff --git a/app/widget/projectexplorer/CMakeLists.txt b/app/widget/projectexplorer/CMakeLists.txt index 35445facf..86ee3f61c 100644 --- a/app/widget/projectexplorer/CMakeLists.txt +++ b/app/widget/projectexplorer/CMakeLists.txt @@ -15,25 +15,25 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/projectexplorer/projectexplorer.cpp - widget/projectexplorer/projectexplorer.h - widget/projectexplorer/projectexplorericonview.cpp - widget/projectexplorer/projectexplorericonview.h - widget/projectexplorer/projectexplorericonviewitemdelegate.cpp - widget/projectexplorer/projectexplorericonviewitemdelegate.h - widget/projectexplorer/projectexplorerlistview.cpp - widget/projectexplorer/projectexplorerlistview.h - widget/projectexplorer/projectexplorerlistviewbase.cpp - widget/projectexplorer/projectexplorerlistviewbase.h - widget/projectexplorer/projectexplorerlistviewitemdelegate.cpp - widget/projectexplorer/projectexplorerlistviewitemdelegate.h - widget/projectexplorer/projectexplorernavigation.cpp - widget/projectexplorer/projectexplorernavigation.h - widget/projectexplorer/projectexplorertreeview.cpp - widget/projectexplorer/projectexplorertreeview.h - widget/projectexplorer/projectexplorerundo.h - widget/projectexplorer/projectviewmodel.cpp - widget/projectexplorer/projectviewmodel.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/projectexplorer/projectexplorer.cpp + widget/projectexplorer/projectexplorer.h + widget/projectexplorer/projectexplorericonview.cpp + widget/projectexplorer/projectexplorericonview.h + widget/projectexplorer/projectexplorericonviewitemdelegate.cpp + widget/projectexplorer/projectexplorericonviewitemdelegate.h + widget/projectexplorer/projectexplorerlistview.cpp + widget/projectexplorer/projectexplorerlistview.h + widget/projectexplorer/projectexplorerlistviewbase.cpp + widget/projectexplorer/projectexplorerlistviewbase.h + widget/projectexplorer/projectexplorerlistviewitemdelegate.cpp + widget/projectexplorer/projectexplorerlistviewitemdelegate.h + widget/projectexplorer/projectexplorernavigation.cpp + widget/projectexplorer/projectexplorernavigation.h + widget/projectexplorer/projectexplorertreeview.cpp + widget/projectexplorer/projectexplorertreeview.h + widget/projectexplorer/projectexplorerundo.h + widget/projectexplorer/projectviewmodel.cpp + widget/projectexplorer/projectviewmodel.h + PARENT_SCOPE ) diff --git a/app/widget/projectexplorer/projectexplorer.cpp b/app/widget/projectexplorer/projectexplorer.cpp index fe3bdd2ba..83a83f3d5 100644 --- a/app/widget/projectexplorer/projectexplorer.cpp +++ b/app/widget/projectexplorer/projectexplorer.cpp @@ -47,7 +47,8 @@ namespace olive { -namespace { +namespace +{ QVector GetSelectedProxyFootage(const QVector &items) { QVector footage; @@ -452,23 +453,21 @@ void ProjectExplorer::ShowContextMenu() connect(use_proxy, &QAction::triggered, this, &ProjectExplorer::SetSelectedFootageProxyEnabled); - QAction *reveal_proxy = - proxy_menu->addAction(tr("Reveal Proxy")); - reveal_proxy->setEnabled(std::any_of( - proxy_footage.cbegin(), proxy_footage.cend(), - [](const Footage *footage) { - return !footage->proxy_path().isEmpty(); - })); + QAction *reveal_proxy = proxy_menu->addAction(tr("Reveal Proxy")); + reveal_proxy->setEnabled( + std::any_of(proxy_footage.cbegin(), proxy_footage.cend(), + [](const Footage *footage) { + return !footage->proxy_path().isEmpty(); + })); connect(reveal_proxy, &QAction::triggered, this, &ProjectExplorer::RevealProxyForSelectedFootage); - QAction *delete_proxy = - proxy_menu->addAction(tr("Delete Proxy")); - delete_proxy->setEnabled(std::any_of( - proxy_footage.cbegin(), proxy_footage.cend(), - [](const Footage *footage) { - return !footage->proxy_path().isEmpty(); - })); + QAction *delete_proxy = proxy_menu->addAction(tr("Delete Proxy")); + delete_proxy->setEnabled( + std::any_of(proxy_footage.cbegin(), proxy_footage.cend(), + [](const Footage *footage) { + return !footage->proxy_path().isEmpty(); + })); connect(delete_proxy, &QAction::triggered, this, &ProjectExplorer::DeleteProxiesForSelectedFootage); } @@ -548,9 +547,9 @@ void ProjectExplorer::ReplaceSelectedFootage() { Footage *footage = static_cast(context_menu_items_.first()); - QString file = QFileDialog::getOpenFileName( - this, tr("Replace Footage"), QString(), - Core::FootageFileDialogFilter()); + QString file = + QFileDialog::getOpenFileName(this, tr("Replace Footage"), QString(), + Core::FootageFileDialogFilter()); if (!file.isEmpty()) { if (!Core::IsFootageExtensionAllowed(file)) { QMessageBox::warning( @@ -593,19 +592,22 @@ void ProjectExplorer::OpenContextMenuItemInNewWindow() void ProjectExplorer::GenerateProxiesForSelectedFootage() { if (!ProxyManager::instance() || !project()) { - qWarning() << "GenerateProxiesForSelectedFootage: ProxyManager or project unavailable"; + qWarning() + << "GenerateProxiesForSelectedFootage: ProxyManager or project unavailable"; return; } const QVector footage = GetSelectedProxyFootage(context_menu_items_); - qDebug() << "GenerateProxiesForSelectedFootage: starting proxy generation for" - << footage.size() << "footage item(s)"; + qDebug() + << "GenerateProxiesForSelectedFootage: starting proxy generation for" + << footage.size() << "footage item(s)"; for (Footage *item : footage) { const VideoParams video = item->GetFirstEnabledVideoStream(); if (!video.is_valid()) { - qWarning() << "GenerateProxiesForSelectedFootage: skipping item with no valid video stream" - << item->filename(); + qWarning() + << "GenerateProxiesForSelectedFootage: skipping item with no valid video stream" + << item->filename(); continue; } @@ -619,9 +621,9 @@ void ProjectExplorer::GenerateProxiesForSelectedFootage() item->project()->cache_path(), item->filename(), video.stream_index(), params); qDebug() << "GenerateProxiesForSelectedFootage: proxy state=" - << ProxyManager::ProxyStateToString(proxy.state) - << "file=" << proxy.filename - << "cache=" << item->project()->cache_path(); + << ProxyManager::ProxyStateToString(proxy.state) + << "file=" << proxy.filename + << "cache=" << item->project()->cache_path(); item->SetProxy(proxy.filename, proxy.state, video.stream_index(), params.version, true); item->InvalidateAll(Footage::kFilenameInput); @@ -633,11 +635,11 @@ void ProjectExplorer::SetSelectedFootageProxyEnabled(bool enabled) const QVector footage = GetSelectedProxyFootage(context_menu_items_); qDebug() << "ProjectExplorer::SetSelectedFootageProxyEnabled:" << enabled - << "footage count=" << footage.size(); + << "footage count=" << footage.size(); for (Footage *item : footage) { if (item->proxy_path().isEmpty()) { - qDebug() << " skipping item with empty proxy path" - << item->filename(); + qDebug() + << " skipping item with empty proxy path" << item->filename(); continue; } diff --git a/app/widget/projecttoolbar/CMakeLists.txt b/app/widget/projecttoolbar/CMakeLists.txt index 6c063e6fe..ad5d91a58 100644 --- a/app/widget/projecttoolbar/CMakeLists.txt +++ b/app/widget/projecttoolbar/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/projecttoolbar/projecttoolbar.h - widget/projecttoolbar/projecttoolbar.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/projecttoolbar/projecttoolbar.h + widget/projecttoolbar/projecttoolbar.cpp + PARENT_SCOPE ) diff --git a/app/widget/resizablescrollbar/CMakeLists.txt b/app/widget/resizablescrollbar/CMakeLists.txt index 1e54cff06..17c85792a 100644 --- a/app/widget/resizablescrollbar/CMakeLists.txt +++ b/app/widget/resizablescrollbar/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/resizablescrollbar/resizablescrollbar.cpp - widget/resizablescrollbar/resizablescrollbar.h - widget/resizablescrollbar/resizabletimelinescrollbar.cpp - widget/resizablescrollbar/resizabletimelinescrollbar.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/resizablescrollbar/resizablescrollbar.cpp + widget/resizablescrollbar/resizablescrollbar.h + widget/resizablescrollbar/resizabletimelinescrollbar.cpp + widget/resizablescrollbar/resizabletimelinescrollbar.h + PARENT_SCOPE ) diff --git a/app/widget/scope/CMakeLists.txt b/app/widget/scope/CMakeLists.txt index fd40b03a1..b18faa4ea 100644 --- a/app/widget/scope/CMakeLists.txt +++ b/app/widget/scope/CMakeLists.txt @@ -20,6 +20,6 @@ add_subdirectory(vectorscope) add_subdirectory(waveform) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/widget/scope/histogram/CMakeLists.txt b/app/widget/scope/histogram/CMakeLists.txt index b743df960..91650e393 100644 --- a/app/widget/scope/histogram/CMakeLists.txt +++ b/app/widget/scope/histogram/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/scope/histogram/histogram.h - widget/scope/histogram/histogram.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/scope/histogram/histogram.h + widget/scope/histogram/histogram.cpp + PARENT_SCOPE ) diff --git a/app/widget/scope/histogram/histogram.cpp b/app/widget/scope/histogram/histogram.cpp index 49a966693..898103327 100644 --- a/app/widget/scope/histogram/histogram.cpp +++ b/app/widget/scope/histogram/histogram.cpp @@ -190,7 +190,8 @@ void HistogramScope::DrawScopeSoftware(QPainter &p, const QImage &image) max_count = qMax(max_count, b_counts[i]); } - auto draw_channel = [&](const std::array &counts, const QColor &color) { + auto draw_channel = [&](const std::array &counts, + const QColor &color) { QPen pen(color); pen.setWidth(2); p.setPen(pen); @@ -198,8 +199,8 @@ void HistogramScope::DrawScopeSoftware(QPainter &p, const QImage &image) QVector points; points.reserve(256); for (int i = 0; i < 256; ++i) { - float x = histogram_start_dim_x + - (float(i) / 255.0f) * histogram_dim_x; + float x = + histogram_start_dim_x + (float(i) / 255.0f) * histogram_dim_x; float normalized = float(counts[i]) / float(max_count); float y = histogram_start_dim_y + histogram_dim_y * diff --git a/app/widget/scope/scopebase/CMakeLists.txt b/app/widget/scope/scopebase/CMakeLists.txt index 58263e1b4..0c8dfa0cd 100644 --- a/app/widget/scope/scopebase/CMakeLists.txt +++ b/app/widget/scope/scopebase/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/scope/scopebase/scopebase.h - widget/scope/scopebase/scopebase.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/scope/scopebase/scopebase.h + widget/scope/scopebase/scopebase.cpp + PARENT_SCOPE ) diff --git a/app/widget/scope/scopebase/scopebase.cpp b/app/widget/scope/scopebase/scopebase.cpp index 363835dce..80fd03cbf 100644 --- a/app/widget/scope/scopebase/scopebase.cpp +++ b/app/widget/scope/scopebase/scopebase.cpp @@ -96,16 +96,16 @@ void ScopeBase::UpdateSoftwareImage() const int texture_width = static_cast(width() * devicePixelRatioF()); const int texture_height = static_cast(height() * devicePixelRatioF()); - const VideoParams offscreen_params( - texture_width, texture_height, PixelFormat::U8, - VideoParams::kRGBAChannelCount); + const VideoParams offscreen_params(texture_width, texture_height, + PixelFormat::U8, + VideoParams::kRGBAChannelCount); if (!software_tex_ || software_tex_->params() != offscreen_params) { software_tex_ = renderer()->CreateTexture(offscreen_params); software_buffer_.resize( texture_width * texture_height * VideoParams::GetBytesPerPixel(PixelFormat::U8, - VideoParams::kRGBAChannelCount)); + VideoParams::kRGBAChannelCount)); } if (!software_tex_ || software_tex_->IsDummy()) { @@ -122,15 +122,15 @@ void ScopeBase::UpdateSoftwareImage() job.SetForceOpaque(true); renderer()->BlitColorManaged(job, software_tex_.get()); - renderer()->DownloadFromTexture(software_tex_->id(), software_tex_->params(), - software_buffer_.data(), 0); + renderer()->DownloadFromTexture(software_tex_->id(), + software_tex_->params(), + software_buffer_.data(), 0); software_image_ = QImage( reinterpret_cast(software_buffer_.constData()), texture_width, texture_height, - texture_width * - VideoParams::GetBytesPerPixel(PixelFormat::U8, - VideoParams::kRGBAChannelCount), + texture_width * VideoParams::GetBytesPerPixel( + PixelFormat::U8, VideoParams::kRGBAChannelCount), QImage::Format_RGBA8888_Premultiplied); software_image_.setDevicePixelRatio(devicePixelRatioF()); diff --git a/app/widget/scope/vectorscope/CMakeLists.txt b/app/widget/scope/vectorscope/CMakeLists.txt index d6ee4f89e..7b88c5805 100644 --- a/app/widget/scope/vectorscope/CMakeLists.txt +++ b/app/widget/scope/vectorscope/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/scope/vectorscope/vectorscope.h - widget/scope/vectorscope/vectorscope.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/scope/vectorscope/vectorscope.h + widget/scope/vectorscope/vectorscope.cpp + PARENT_SCOPE ) diff --git a/app/widget/scope/vectorscope/vectorscope.cpp b/app/widget/scope/vectorscope/vectorscope.cpp index a7e7201bb..7553c44e3 100644 --- a/app/widget/scope/vectorscope/vectorscope.cpp +++ b/app/widget/scope/vectorscope/vectorscope.cpp @@ -160,14 +160,13 @@ void VectorscopeScope::DrawScopeSoftware(QPainter &p, const QImage &image) float g = src[1] / 255.0f; float b = src[2] / 255.0f; - float y = r * luma_coeffs[0] + g * luma_coeffs[1] + - b * luma_coeffs[2]; + float y = + r * luma_coeffs[0] + g * luma_coeffs[1] + b * luma_coeffs[2]; float cb = (b - y) / qMax(2.0f * (1.0f - luma_coeffs[2]), 0.0001f); float cr = (r - y) / qMax(2.0f * (1.0f - luma_coeffs[0]), 0.0001f); - QPointF point = center + - QPointF(cr * vectorscope_gain * radius, - -cb * vectorscope_gain * radius); + QPointF point = center + QPointF(cr * vectorscope_gain * radius, + -cb * vectorscope_gain * radius); int px = qRound(point.x()); int py = qRound(point.y()); diff --git a/app/widget/scope/waveform/CMakeLists.txt b/app/widget/scope/waveform/CMakeLists.txt index 28d0b9b7c..ce744cf78 100644 --- a/app/widget/scope/waveform/CMakeLists.txt +++ b/app/widget/scope/waveform/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/scope/waveform/waveform.h - widget/scope/waveform/waveform.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/scope/waveform/waveform.h + widget/scope/waveform/waveform.cpp + PARENT_SCOPE ) diff --git a/app/widget/scope/waveform/waveform.cpp b/app/widget/scope/waveform/waveform.cpp index 058546e9f..7c3439f83 100644 --- a/app/widget/scope/waveform/waveform.cpp +++ b/app/widget/scope/waveform/waveform.cpp @@ -157,13 +157,14 @@ void WaveformScope::DrawScopeSoftware(QPainter &p, const QImage &image) } auto mark = [&](float value, int add_r, int add_g, int add_b) { - int scope_y = waveform_start_dim_y + - int((1.0f - value) * waveform_dim_y); + int scope_y = + waveform_start_dim_y + int((1.0f - value) * waveform_dim_y); if (scope_y < waveform_start_dim_y || scope_y >= waveform_start_dim_y + waveform_dim_y) { return; } - QRgb *dst_line = reinterpret_cast(buf.scanLine(scope_y)); + QRgb *dst_line = + reinterpret_cast(buf.scanLine(scope_y)); QRgb cur = dst_line[scope_x]; int nr = qMin(255, qRed(cur) + add_r); int ng = qMin(255, qGreen(cur) + add_g); diff --git a/app/widget/slider/CMakeLists.txt b/app/widget/slider/CMakeLists.txt index b90c18ab5..1589baa7b 100644 --- a/app/widget/slider/CMakeLists.txt +++ b/app/widget/slider/CMakeLists.txt @@ -17,14 +17,14 @@ add_subdirectory(base) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/slider/floatslider.h - widget/slider/floatslider.cpp - widget/slider/integerslider.h - widget/slider/integerslider.cpp - widget/slider/rationalslider.h - widget/slider/rationalslider.cpp - widget/slider/stringslider.h - widget/slider/stringslider.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/slider/floatslider.h + widget/slider/floatslider.cpp + widget/slider/integerslider.h + widget/slider/integerslider.cpp + widget/slider/rationalslider.h + widget/slider/rationalslider.cpp + widget/slider/stringslider.h + widget/slider/stringslider.cpp + PARENT_SCOPE ) diff --git a/app/widget/slider/base/CMakeLists.txt b/app/widget/slider/base/CMakeLists.txt index 921ec8826..10e843cb6 100644 --- a/app/widget/slider/base/CMakeLists.txt +++ b/app/widget/slider/base/CMakeLists.txt @@ -15,16 +15,16 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/slider/base/decimalsliderbase.h - widget/slider/base/decimalsliderbase.cpp - widget/slider/base/numericsliderbase.h - widget/slider/base/numericsliderbase.cpp - widget/slider/base/sliderbase.h - widget/slider/base/sliderbase.cpp - widget/slider/base/sliderlabel.h - widget/slider/base/sliderlabel.cpp - widget/slider/base/sliderladder.h - widget/slider/base/sliderladder.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/slider/base/decimalsliderbase.h + widget/slider/base/decimalsliderbase.cpp + widget/slider/base/numericsliderbase.h + widget/slider/base/numericsliderbase.cpp + widget/slider/base/sliderbase.h + widget/slider/base/sliderbase.cpp + widget/slider/base/sliderlabel.h + widget/slider/base/sliderlabel.cpp + widget/slider/base/sliderladder.h + widget/slider/base/sliderladder.cpp + PARENT_SCOPE ) diff --git a/app/widget/standardcombos/CMakeLists.txt b/app/widget/standardcombos/CMakeLists.txt index 4cb7164e6..21fa28627 100644 --- a/app/widget/standardcombos/CMakeLists.txt +++ b/app/widget/standardcombos/CMakeLists.txt @@ -15,15 +15,15 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/standardcombos/channellayoutcombobox.h - widget/standardcombos/frameratecombobox.h - widget/standardcombos/interlacedcombobox.h - widget/standardcombos/pixelaspectratiocombobox.h - widget/standardcombos/pixelformatcombobox.h - widget/standardcombos/sampleformatcombobox.h - widget/standardcombos/sampleratecombobox.h - widget/standardcombos/standardcombos.h - widget/standardcombos/videodividercombobox.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/standardcombos/channellayoutcombobox.h + widget/standardcombos/frameratecombobox.h + widget/standardcombos/interlacedcombobox.h + widget/standardcombos/pixelaspectratiocombobox.h + widget/standardcombos/pixelformatcombobox.h + widget/standardcombos/sampleformatcombobox.h + widget/standardcombos/sampleratecombobox.h + widget/standardcombos/standardcombos.h + widget/standardcombos/videodividercombobox.h + PARENT_SCOPE ) diff --git a/app/widget/taskview/CMakeLists.txt b/app/widget/taskview/CMakeLists.txt index 7c380215a..d14e6775a 100644 --- a/app/widget/taskview/CMakeLists.txt +++ b/app/widget/taskview/CMakeLists.txt @@ -15,12 +15,12 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/taskview/elapsedcounterwidget.h - widget/taskview/elapsedcounterwidget.cpp - widget/taskview/taskview.h - widget/taskview/taskview.cpp - widget/taskview/taskviewitem.h - widget/taskview/taskviewitem.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/taskview/elapsedcounterwidget.h + widget/taskview/elapsedcounterwidget.cpp + widget/taskview/taskview.h + widget/taskview/taskview.cpp + widget/taskview/taskviewitem.h + widget/taskview/taskviewitem.cpp + PARENT_SCOPE ) diff --git a/app/widget/timebased/CMakeLists.txt b/app/widget/timebased/CMakeLists.txt index 55609d627..105db8c31 100644 --- a/app/widget/timebased/CMakeLists.txt +++ b/app/widget/timebased/CMakeLists.txt @@ -15,14 +15,14 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/timebased/timebasedview.cpp - widget/timebased/timebasedview.h - widget/timebased/timebasedviewselectionmanager.cpp - widget/timebased/timebasedviewselectionmanager.h - widget/timebased/timebasedwidget.cpp - widget/timebased/timebasedwidget.h - widget/timebased/timescaledobject.cpp - widget/timebased/timescaledobject.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/timebased/timebasedview.cpp + widget/timebased/timebasedview.h + widget/timebased/timebasedviewselectionmanager.cpp + widget/timebased/timebasedviewselectionmanager.h + widget/timebased/timebasedwidget.cpp + widget/timebased/timebasedwidget.h + widget/timebased/timescaledobject.cpp + widget/timebased/timescaledobject.h + PARENT_SCOPE ) diff --git a/app/widget/timelinewidget/CMakeLists.txt b/app/widget/timelinewidget/CMakeLists.txt index d662526ce..1fdbadba4 100644 --- a/app/widget/timelinewidget/CMakeLists.txt +++ b/app/widget/timelinewidget/CMakeLists.txt @@ -19,14 +19,14 @@ add_subdirectory(tool) add_subdirectory(view) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/timelinewidget/timelineandtrackview.cpp - widget/timelinewidget/timelineandtrackview.h - widget/timelinewidget/timelinewidget.cpp - widget/timelinewidget/timelinewidget.h - widget/timelinewidget/timelinewidgetselections.cpp - widget/timelinewidget/timelinewidgetselections.h - widget/timelinewidget/timelinewidgetwaveformsync.cpp - widget/timelinewidget/timelinewidgetwaveformsync.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/timelinewidget/timelineandtrackview.cpp + widget/timelinewidget/timelineandtrackview.h + widget/timelinewidget/timelinewidget.cpp + widget/timelinewidget/timelinewidget.h + widget/timelinewidget/timelinewidgetselections.cpp + widget/timelinewidget/timelinewidgetselections.h + widget/timelinewidget/timelinewidgetwaveformsync.cpp + widget/timelinewidget/timelinewidgetwaveformsync.h + PARENT_SCOPE ) diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 74ec9b454..be4210977 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -79,7 +79,8 @@ namespace olive using namespace TimelineWaveformSync; -namespace { +namespace +{ struct SourceSyncClip { ClipBlock *clip = nullptr; @@ -107,8 +108,8 @@ bool GetSourceSyncClip(Block *block, SourceSyncClip *out) return true; } -QVector GetSelectedSourceSyncClips( - const QVector &blocks) +QVector +GetSelectedSourceSyncClips(const QVector &blocks) { QVector clips; for (Block *block : blocks) { @@ -1061,13 +1062,13 @@ void TimelineWidget::SynchronizeSelectedClipsByWaveform() continue; } - const QVector candidate_envelope = - ExtractWaveformCacheEnvelope(sync_clip, sample_rate, - window_samples); + const QVector candidate_envelope = ExtractWaveformCacheEnvelope( + sync_clip, sample_rate, window_samples); const AudioWaveformSync::OffsetResult offset = - AudioWaveformSync::EstimateEnvelopeOffset( - reference_envelope, candidate_envelope, window_samples, - max_offset_windows); + AudioWaveformSync::EstimateEnvelopeOffset(reference_envelope, + candidate_envelope, + window_samples, + max_offset_windows); if (!offset.valid) { continue; } @@ -1105,23 +1106,28 @@ void TimelineWidget::SynchronizeSelectedClipsByWaveform() command->add_child( new SetSelectionsCommand(this, new_selections, GetSelections())); - Core::instance()->undo_stack()->push( - command, tr("Synchronize Clips by Waveform")); + Core::instance()->undo_stack()->push(command, + tr("Synchronize Clips by Waveform")); } void TimelineWidget::GenerateProxiesForSelectedClips() { if (!ProxyManager::instance() || !sequence()) { - qWarning() << "GenerateProxiesForSelectedClips: ProxyManager or sequence unavailable"; + qWarning() + << "GenerateProxiesForSelectedClips: ProxyManager or sequence unavailable"; return; } - const QVector footage = GetSelectedProxyFootage(selected_blocks_); - qDebug() << "GenerateProxiesForSelectedClips: starting proxy generation for" << footage.size() << "footage item(s)"; + const QVector footage = + GetSelectedProxyFootage(selected_blocks_); + qDebug() << "GenerateProxiesForSelectedClips: starting proxy generation for" + << footage.size() << "footage item(s)"; for (Footage *item : footage) { const VideoParams video = item->GetFirstEnabledVideoStream(); if (!video.is_valid()) { - qWarning() << "GenerateProxiesForSelectedClips: skipping item with no valid video stream" << item->filename(); + qWarning() + << "GenerateProxiesForSelectedClips: skipping item with no valid video stream" + << item->filename(); continue; } @@ -1134,7 +1140,8 @@ void TimelineWidget::GenerateProxiesForSelectedClips() ProxyManager::instance()->GetOrStartProxy( item->project()->cache_path(), item->filename(), video.stream_index(), params); - qDebug() << "GenerateProxiesForSelectedClips: proxy state=" << ProxyManager::ProxyStateToString(proxy.state) + qDebug() << "GenerateProxiesForSelectedClips: proxy state=" + << ProxyManager::ProxyStateToString(proxy.state) << "file=" << proxy.filename << "cache=" << item->project()->cache_path(); item->SetProxy(proxy.filename, proxy.state, video.stream_index(), @@ -1145,13 +1152,14 @@ void TimelineWidget::GenerateProxiesForSelectedClips() void TimelineWidget::SetSelectedClipsProxyEnabled(bool enabled) { - const QVector footage = GetSelectedProxyFootage(selected_blocks_); + const QVector footage = + GetSelectedProxyFootage(selected_blocks_); qDebug() << "TimelineWidget::SetSelectedClipsProxyEnabled:" << enabled << "footage count=" << footage.size(); for (Footage *item : footage) { if (item->proxy_path().isEmpty()) { - qDebug() << " skipping item with empty proxy path" - << item->filename(); + qDebug() + << " skipping item with empty proxy path" << item->filename(); continue; } @@ -1162,7 +1170,8 @@ void TimelineWidget::SetSelectedClipsProxyEnabled(bool enabled) void TimelineWidget::RevealProxyForSelectedClips() { - const QVector footage = GetSelectedProxyFootage(selected_blocks_); + const QVector footage = + GetSelectedProxyFootage(selected_blocks_); for (Footage *item : footage) { if (item->proxy_path().isEmpty()) { continue; @@ -1193,15 +1202,16 @@ void TimelineWidget::RevealProxyForSelectedClips() void TimelineWidget::DeleteProxiesForSelectedClips() { - const QVector footage = GetSelectedProxyFootage(selected_blocks_); + const QVector footage = + GetSelectedProxyFootage(selected_blocks_); for (Footage *item : footage) { if (item->proxy_path().isEmpty()) { continue; } QFile::remove(item->proxy_path()); - QFile::remove(ProxyManager::GetWorkingProxyFilename( - item->proxy_path())); + QFile::remove( + ProxyManager::GetWorkingProxyFilename(item->proxy_path())); item->ClearProxy(); item->InvalidateAll(Footage::kFilenameInput); } @@ -1734,21 +1744,21 @@ void TimelineWidget::ShowContextMenu() QAction *reveal_proxy = proxy_menu->addAction(tr("Reveal Proxy")); - reveal_proxy->setEnabled(std::any_of( - proxy_footage.cbegin(), proxy_footage.cend(), - [](const Footage *footage) { - return !footage->proxy_path().isEmpty(); - })); + reveal_proxy->setEnabled( + std::any_of(proxy_footage.cbegin(), proxy_footage.cend(), + [](const Footage *footage) { + return !footage->proxy_path().isEmpty(); + })); connect(reveal_proxy, &QAction::triggered, this, &TimelineWidget::RevealProxyForSelectedClips); QAction *delete_proxy = proxy_menu->addAction(tr("Delete Proxy")); - delete_proxy->setEnabled(std::any_of( - proxy_footage.cbegin(), proxy_footage.cend(), - [](const Footage *footage) { - return !footage->proxy_path().isEmpty(); - })); + delete_proxy->setEnabled( + std::any_of(proxy_footage.cbegin(), proxy_footage.cend(), + [](const Footage *footage) { + return !footage->proxy_path().isEmpty(); + })); connect(delete_proxy, &QAction::triggered, this, &TimelineWidget::DeleteProxiesForSelectedClips); } diff --git a/app/widget/timelinewidget/timelinewidgetwaveformsync.cpp b/app/widget/timelinewidget/timelinewidgetwaveformsync.cpp index 5e3c040f8..f30faa085 100644 --- a/app/widget/timelinewidget/timelinewidgetwaveformsync.cpp +++ b/app/widget/timelinewidget/timelinewidgetwaveformsync.cpp @@ -66,8 +66,8 @@ bool GetWaveformSyncClip(Block *block, WaveformSyncClip *out) return true; } -QVector GetSelectedWaveformSyncClips( - const QVector &blocks) +QVector +GetSelectedWaveformSyncClips(const QVector &blocks) { QVector clips; for (Block *block : blocks) { @@ -108,7 +108,8 @@ QVector ExtractWaveformCacheEnvelope(const WaveformSyncClip &clip, const AudioVisualWaveform::Sample summary = clip.waveform->GetSummaryFromTime(t, length); - for (const AudioVisualWaveform::SamplePerChannel &channel : summary) { + for (const AudioVisualWaveform::SamplePerChannel &channel : + summary) { const double channel_peak = std::max(std::abs(static_cast(channel.min)), std::abs(static_cast(channel.max))); @@ -121,6 +122,6 @@ QVector ExtractWaveformCacheEnvelope(const WaveformSyncClip &clip, return envelope; } -} // namespace TimelineWaveformSync +} // namespace TimelineWaveformSync -} // namespace olive +} // namespace olive diff --git a/app/widget/timelinewidget/timelinewidgetwaveformsync.h b/app/widget/timelinewidget/timelinewidgetwaveformsync.h index 05f3c8d5d..4a77cee61 100644 --- a/app/widget/timelinewidget/timelinewidgetwaveformsync.h +++ b/app/widget/timelinewidget/timelinewidgetwaveformsync.h @@ -38,10 +38,10 @@ class ClipBlock; * @brief Data required to synchronize a clip using its cached audio waveform. */ struct WaveformSyncClip { - ClipBlock *clip = nullptr; - const AudioWaveformCache *waveform = nullptr; - TimeRange media_range; - int sample_rate = 0; + ClipBlock *clip = nullptr; + const AudioWaveformCache *waveform = nullptr; + TimeRange media_range; + int sample_rate = 0; }; /** @@ -64,8 +64,8 @@ bool GetWaveformSyncClip(Block *block, WaveformSyncClip *out); /** * @brief Return all selected blocks that can be synchronized by waveform. */ -QVector GetSelectedWaveformSyncClips( - const QVector &blocks); +QVector +GetSelectedWaveformSyncClips(const QVector &blocks); /** * @brief Extract a peak envelope from the validated regions of a waveform cache. @@ -74,11 +74,11 @@ QVector GetSelectedWaveformSyncClips( * envelope stays aligned to the same absolute timeline. */ QVector ExtractWaveformCacheEnvelope(const WaveformSyncClip &clip, - int sample_rate, - size_t window_samples); + int sample_rate, + size_t window_samples); -} // namespace TimelineWaveformSync +} // namespace TimelineWaveformSync -} // namespace olive +} // namespace olive -#endif // TIMELINEWIDGETWAVEFORMSYNC_H +#endif // TIMELINEWIDGETWAVEFORMSYNC_H diff --git a/app/widget/timelinewidget/tool/CMakeLists.txt b/app/widget/timelinewidget/tool/CMakeLists.txt index 10670d9b0..ec741cbee 100644 --- a/app/widget/timelinewidget/tool/CMakeLists.txt +++ b/app/widget/timelinewidget/tool/CMakeLists.txt @@ -15,36 +15,36 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/timelinewidget/tool/add.cpp - widget/timelinewidget/tool/add.h - widget/timelinewidget/tool/beam.cpp - widget/timelinewidget/tool/beam.h - widget/timelinewidget/tool/edit.cpp - widget/timelinewidget/tool/edit.h - widget/timelinewidget/tool/import.cpp - widget/timelinewidget/tool/import.h - widget/timelinewidget/tool/pointer.cpp - widget/timelinewidget/tool/pointer.h - widget/timelinewidget/tool/razor.cpp - widget/timelinewidget/tool/razor.h - widget/timelinewidget/tool/record.cpp - widget/timelinewidget/tool/record.h - widget/timelinewidget/tool/ripple.cpp - widget/timelinewidget/tool/ripple.h - widget/timelinewidget/tool/rolling.cpp - widget/timelinewidget/tool/rolling.h - widget/timelinewidget/tool/slide.cpp - widget/timelinewidget/tool/slide.h - widget/timelinewidget/tool/slip.cpp - widget/timelinewidget/tool/slip.h - widget/timelinewidget/tool/trackselect.cpp - widget/timelinewidget/tool/trackselect.h - widget/timelinewidget/tool/transition.cpp - widget/timelinewidget/tool/transition.h - widget/timelinewidget/tool/tool.cpp - widget/timelinewidget/tool/tool.h - widget/timelinewidget/tool/zoom.cpp - widget/timelinewidget/tool/zoom.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/timelinewidget/tool/add.cpp + widget/timelinewidget/tool/add.h + widget/timelinewidget/tool/beam.cpp + widget/timelinewidget/tool/beam.h + widget/timelinewidget/tool/edit.cpp + widget/timelinewidget/tool/edit.h + widget/timelinewidget/tool/import.cpp + widget/timelinewidget/tool/import.h + widget/timelinewidget/tool/pointer.cpp + widget/timelinewidget/tool/pointer.h + widget/timelinewidget/tool/razor.cpp + widget/timelinewidget/tool/razor.h + widget/timelinewidget/tool/record.cpp + widget/timelinewidget/tool/record.h + widget/timelinewidget/tool/ripple.cpp + widget/timelinewidget/tool/ripple.h + widget/timelinewidget/tool/rolling.cpp + widget/timelinewidget/tool/rolling.h + widget/timelinewidget/tool/slide.cpp + widget/timelinewidget/tool/slide.h + widget/timelinewidget/tool/slip.cpp + widget/timelinewidget/tool/slip.h + widget/timelinewidget/tool/trackselect.cpp + widget/timelinewidget/tool/trackselect.h + widget/timelinewidget/tool/transition.cpp + widget/timelinewidget/tool/transition.h + widget/timelinewidget/tool/tool.cpp + widget/timelinewidget/tool/tool.h + widget/timelinewidget/tool/zoom.cpp + widget/timelinewidget/tool/zoom.h + PARENT_SCOPE ) diff --git a/app/widget/timelinewidget/trackview/CMakeLists.txt b/app/widget/timelinewidget/trackview/CMakeLists.txt index c0b7845e6..a79cf9578 100644 --- a/app/widget/timelinewidget/trackview/CMakeLists.txt +++ b/app/widget/timelinewidget/trackview/CMakeLists.txt @@ -15,12 +15,12 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/timelinewidget/trackview/trackview.h - widget/timelinewidget/trackview/trackview.cpp - widget/timelinewidget/trackview/trackviewitem.h - widget/timelinewidget/trackview/trackviewitem.cpp - widget/timelinewidget/trackview/trackviewsplitter.h - widget/timelinewidget/trackview/trackviewsplitter.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/timelinewidget/trackview/trackview.h + widget/timelinewidget/trackview/trackview.cpp + widget/timelinewidget/trackview/trackviewitem.h + widget/timelinewidget/trackview/trackviewitem.cpp + widget/timelinewidget/trackview/trackviewsplitter.h + widget/timelinewidget/trackview/trackviewsplitter.cpp + PARENT_SCOPE ) diff --git a/app/widget/timelinewidget/view/CMakeLists.txt b/app/widget/timelinewidget/view/CMakeLists.txt index 4fbe6a280..ae44bb9bd 100644 --- a/app/widget/timelinewidget/view/CMakeLists.txt +++ b/app/widget/timelinewidget/view/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/timelinewidget/view/timelineview.cpp - widget/timelinewidget/view/timelineview.h - widget/timelinewidget/view/timelineviewmouseevent.h - widget/timelinewidget/view/timelineviewghostitem.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/timelinewidget/view/timelineview.cpp + widget/timelinewidget/view/timelineview.h + widget/timelinewidget/view/timelineviewmouseevent.h + widget/timelinewidget/view/timelineviewghostitem.h + PARENT_SCOPE ) diff --git a/app/widget/timeruler/CMakeLists.txt b/app/widget/timeruler/CMakeLists.txt index 895046495..1bd26b6a9 100644 --- a/app/widget/timeruler/CMakeLists.txt +++ b/app/widget/timeruler/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/timeruler/seekablewidget.h - widget/timeruler/seekablewidget.cpp - widget/timeruler/timeruler.h - widget/timeruler/timeruler.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/timeruler/seekablewidget.h + widget/timeruler/seekablewidget.cpp + widget/timeruler/timeruler.h + widget/timeruler/timeruler.cpp + PARENT_SCOPE ) diff --git a/app/widget/timetarget/CMakeLists.txt b/app/widget/timetarget/CMakeLists.txt index 7cca0f27c..3cf9b8804 100644 --- a/app/widget/timetarget/CMakeLists.txt +++ b/app/widget/timetarget/CMakeLists.txt @@ -15,8 +15,8 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/timetarget/timetarget.h - widget/timetarget/timetarget.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/timetarget/timetarget.h + widget/timetarget/timetarget.cpp + PARENT_SCOPE ) diff --git a/app/widget/toolbar/CMakeLists.txt b/app/widget/toolbar/CMakeLists.txt index 6c2b66f66..89a4e7b2f 100644 --- a/app/widget/toolbar/CMakeLists.txt +++ b/app/widget/toolbar/CMakeLists.txt @@ -15,10 +15,10 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/toolbar/toolbar.h - widget/toolbar/toolbar.cpp - widget/toolbar/toolbarbutton.h - widget/toolbar/toolbarbutton.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/toolbar/toolbar.h + widget/toolbar/toolbar.cpp + widget/toolbar/toolbarbutton.h + widget/toolbar/toolbarbutton.cpp + PARENT_SCOPE ) diff --git a/app/widget/viewer/CMakeLists.txt b/app/widget/viewer/CMakeLists.txt index ca6026619..8251b2518 100644 --- a/app/widget/viewer/CMakeLists.txt +++ b/app/widget/viewer/CMakeLists.txt @@ -15,26 +15,26 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - widget/viewer/audiowaveformview.cpp - widget/viewer/audiowaveformview.h - widget/viewer/footageviewer.cpp - widget/viewer/footageviewer.h - widget/viewer/viewer.cpp - widget/viewer/viewer.h - widget/viewer/viewerdisplay.cpp - widget/viewer/viewerdisplay.h - widget/viewer/viewerplaybacktimer.cpp - widget/viewer/viewerplaybacktimer.h - widget/viewer/viewerpreventsleep.cpp - widget/viewer/viewerpreventsleep.h - widget/viewer/viewerqueue.h - widget/viewer/viewersafemargininfo.h - widget/viewer/viewersizer.cpp - widget/viewer/viewersizer.h - widget/viewer/viewertexteditor.cpp - widget/viewer/viewertexteditor.h - widget/viewer/viewerwindow.cpp - widget/viewer/viewerwindow.h - PARENT_SCOPE + ${OLIVE_SOURCES} + widget/viewer/audiowaveformview.cpp + widget/viewer/audiowaveformview.h + widget/viewer/footageviewer.cpp + widget/viewer/footageviewer.h + widget/viewer/viewer.cpp + widget/viewer/viewer.h + widget/viewer/viewerdisplay.cpp + widget/viewer/viewerdisplay.h + widget/viewer/viewerplaybacktimer.cpp + widget/viewer/viewerplaybacktimer.h + widget/viewer/viewerpreventsleep.cpp + widget/viewer/viewerpreventsleep.h + widget/viewer/viewerqueue.h + widget/viewer/viewersafemargininfo.h + widget/viewer/viewersizer.cpp + widget/viewer/viewersizer.h + widget/viewer/viewertexteditor.cpp + widget/viewer/viewertexteditor.h + widget/viewer/viewerwindow.cpp + widget/viewer/viewerwindow.h + PARENT_SCOPE ) diff --git a/app/widget/viewer/audiowaveformview.cpp b/app/widget/viewer/audiowaveformview.cpp index f3bb2a08a..42f3cdd5a 100644 --- a/app/widget/viewer/audiowaveformview.cpp +++ b/app/widget/viewer/audiowaveformview.cpp @@ -69,7 +69,9 @@ void AudioWaveformView::SetViewer(ViewerOutput *playback) rational tb = playback_->GetVideoParams().frame_rate_as_time_base(); if (tb.isNull()) { - tb = OLIVE_CONFIG("DefaultSequenceFrameRate").value().flipped(); + tb = OLIVE_CONFIG("DefaultSequenceFrameRate") + .value() + .flipped(); } SetTimebase(tb); UpdateSceneRect(); diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index 5308c53c8..37ef50491 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -97,11 +97,12 @@ ViewerWidget::ViewerWidget(ViewerDisplayWidget *display, QWidget *parent) &ViewerWidget::CursorColor); connect(display_widget_, &ViewerDisplayWidget::ColorProcessorChanged, this, &ViewerWidget::ColorProcessorChanged); - connect(display_widget_, &ViewerDisplayWidget::ColorProcessorChanged, this, - [](ColorProcessorPtr processor) { - RenderManager::instance()->GetCacher()->SetDisplayColorProcessor( - processor); - }); + connect( + display_widget_, &ViewerDisplayWidget::ColorProcessorChanged, this, + [](ColorProcessorPtr processor) { + RenderManager::instance()->GetCacher()->SetDisplayColorProcessor( + processor); + }); RenderManager::instance()->GetCacher()->SetDisplayColorProcessor( display_widget_->GetCurrentColorProcessor()); connect(display_widget_, &ViewerDisplayWidget::ColorManagerChanged, this, @@ -985,8 +986,7 @@ void ViewerWidget::ForceRequeueFromCurrentTime() // called from paintEvent paths (QueueStarved) where synchronously cancelling // watchers can re-enter the same RenderTicket mutex and deadlock. QMetaObject::invokeMethod( - this, - [this]() { ForceRequeueFromCurrentTimeInternal(); }, + this, [this]() { ForceRequeueFromCurrentTimeInternal(); }, Qt::QueuedConnection); } @@ -1001,7 +1001,7 @@ void ViewerWidget::ForceRequeueFromCurrentTimeInternal() playback_queue_next_frame_ = GetTimestamp() + playback_speed_ * Timecode::time_to_timestamp( - kRequeueWaitTime, timebase(), Timecode::kFloor); + kRequeueWaitTime, timebase(), Timecode::kFloor); ; first_requeue_watcher_ = nullptr; for (int i = 0; i < queue; i++) { @@ -1130,7 +1130,8 @@ void ViewerWidget::PlayInternal(int speed, bool in_to_out_only) // Verify audio processor output params are valid before using them AudioParams output_params = audio_processor_.to(); if (!output_params.is_valid()) { - qWarning() << "Audio processor output params are invalid, skipping audio playback"; + qWarning() + << "Audio processor output params are invalid, skipping audio playback"; } else { AudioManager::instance()->SetOutputNotifyInterval( output_params.time_to_bytes(kAudioPlaybackInterval)); @@ -1138,7 +1139,8 @@ void ViewerWidget::PlayInternal(int speed, bool in_to_out_only) &ViewerWidget::QueueNextAudioBuffer); static const int prequeue_count = 2; - prequeuing_audio_ = prequeue_count; // Queue two buffers ahead of time + prequeuing_audio_ = + prequeue_count; // Queue two buffers ahead of time audio_playback_queue_time_ = GetConnectedNode()->GetPlayhead(); for (int i = 0; i < prequeue_count; i++) { QueueNextAudioBuffer(); @@ -1506,17 +1508,13 @@ void ViewerWidget::RendererGeneratedFrameForQueue() // Ignore this signal if we've paused now if (IsPlaying() || prequeuing_video_) { - const qint64 start_ms = - watcher->property("start").toLongLong(); - const qint64 now_ms = - QDateTime::currentMSecsSinceEpoch(); + const qint64 start_ms = watcher->property("start").toLongLong(); + const qint64 now_ms = QDateTime::currentMSecsSinceEpoch(); const int playback_step = qMax(1, qAbs(playback_speed_)); - const double frame_interval_ms = qMax( - 1.0, - timebase().toDouble() * 1000.0 / - static_cast(playback_step)); - if (start_ms > 0 && - (now_ms - start_ms) > frame_interval_ms) { + const double frame_interval_ms = + qMax(1.0, timebase().toDouble() * 1000.0 / + static_cast(playback_step)); + if (start_ms > 0 && (now_ms - start_ms) > frame_interval_ms) { // If the queue is nearly empty, keep the frame anyway // to prevent the viewer from freezing entirely when // rendering can't keep up with playback speed. @@ -1544,7 +1542,7 @@ void ViewerWidget::RendererGeneratedFrameForQueue() } dw->queue()->AppendTimewise({ ts, push }, - playback_speed_); + playback_speed_); } } diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index e29fb5d9b..65193cee5 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -385,15 +385,15 @@ void ViewerDisplayWidget::OnPaint() // image itself will be rendered offscreen, downloaded, and painted below. bg_painter.begin(paint_device()); bg_painter_active = true; - bg_painter.fillRect(GetInnerRect(), - show_widget_background_ ? palette().window().color() : - Qt::black); + bg_painter.fillRect(GetInnerRect(), show_widget_background_ ? + palette().window().color() : + Qt::black); } else { // Clear background to empty QColor bg_color = show_widget_background_ ? palette().window().color() : Qt::black; - renderer()->ClearDestination(nullptr, bg_color.redF(), bg_color.greenF(), - bg_color.blueF()); + renderer()->ClearDestination(nullptr, bg_color.redF(), + bg_color.greenF(), bg_color.blueF()); } VideoParams device_params; @@ -412,13 +412,14 @@ void ViewerDisplayWidget::OnPaint() } else if (color_service()) { bool drew_backend_neutral_frame = false; if (FramePtr frame = load_frame_.value()) { - if (!drew_backend_neutral_frame && (!texture_ || - texture_->renderer() != - renderer() // Some implementations don't like it if we upload to a texture created in another (albeit shared) context - || texture_->width() != frame->width() || - texture_->height() != frame->height() || - texture_->format() != frame->format() || - texture_->channel_count() != frame->channel_count())) { + if (!drew_backend_neutral_frame && + (!texture_ || + texture_->renderer() != + renderer() // Some implementations don't like it if we upload to a texture created in another (albeit shared) context + || texture_->width() != frame->width() || + texture_->height() != frame->height() || + texture_->format() != frame->format() || + texture_->channel_count() != frame->channel_count())) { texture_ = renderer()->CreateTexture( frame->video_params(), frame->data(), frame->linesize_pixels()); @@ -427,9 +428,10 @@ void ViewerDisplayWidget::OnPaint() } } else if (TexturePtr texture = load_frame_.value()) { // This is a GPU texture, switch to it directly when possible. - if (!drew_backend_neutral_frame && texture && texture->renderer() && - texture->renderer() != renderer()) { - if (texture->renderer()->IsOpenGL() && renderer()->IsOpenGL()) { + if (!drew_backend_neutral_frame && texture && + texture->renderer() && texture->renderer() != renderer()) { + if (texture->renderer()->IsOpenGL() && + renderer()->IsOpenGL()) { // Shared OpenGL contexts can display the producer texture // directly. Avoid readback here because the producer // renderer may belong to a render thread whose context @@ -441,8 +443,8 @@ void ViewerDisplayWidget::OnPaint() frame->set_video_params(texture->params()); if (frame->allocate()) { texture->renderer()->DownloadFromTexture( - texture->id(), texture->params(), - frame->data(), frame->linesize_pixels()); + texture->id(), texture->params(), frame->data(), + frame->linesize_pixels()); texture_ = renderer()->CreateTexture( frame->video_params(), frame->data(), frame->linesize_pixels()); @@ -475,9 +477,11 @@ void ViewerDisplayWidget::OnPaint() } else { if (deinterlace_) { if (deinterlace_shader_.isNull()) { - deinterlace_shader_ = renderer()->CreateNativeShader( - ShaderCode(FileFunctions::ReadFileAsString( - QStringLiteral(":/shaders/deinterlace.frag")))); + deinterlace_shader_ = + renderer()->CreateNativeShader( + ShaderCode(FileFunctions::ReadFileAsString( + QStringLiteral( + ":/shaders/deinterlace.frag")))); } if (!deinterlace_texture_ || @@ -489,13 +493,15 @@ void ViewerDisplayWidget::OnPaint() } ShaderJob job; - job.Insert(QStringLiteral("resolution_in"), - NodeValue(NodeValue::kVec2, - QVector2D(texture_to_draw->width(), - texture_to_draw->height()))); - job.Insert(QStringLiteral("ove_maintex"), - NodeValue(NodeValue::kTexture, - QVariant::fromValue(texture_to_draw))); + job.Insert( + QStringLiteral("resolution_in"), + NodeValue(NodeValue::kVec2, + QVector2D(texture_to_draw->width(), + texture_to_draw->height()))); + job.Insert( + QStringLiteral("ove_maintex"), + NodeValue(NodeValue::kTexture, + QVariant::fromValue(texture_to_draw))); renderer()->BlitToTexture(deinterlace_shader_, job, deinterlace_texture_.get()); @@ -1453,28 +1459,30 @@ bool ViewerDisplayWidget::DrawBackendNeutralFrame(const FramePtr &frame, if (display_frame->format() == PixelFormat::U8 && display_frame->channel_count() == VideoParams::kRGBAChannelCount) { backend_neutral_cpu_display_frame_ = display_frame; - backend_neutral_cpu_image_ = QImage( - reinterpret_cast(display_frame->const_data()), - display_frame->width(), display_frame->height(), - display_frame->linesize_bytes(), QImage::Format_RGBA8888); + backend_neutral_cpu_image_ = + QImage(reinterpret_cast(display_frame->const_data()), + display_frame->width(), display_frame->height(), + display_frame->linesize_bytes(), QImage::Format_RGBA8888); source_image = backend_neutral_cpu_image_; } else if (display_frame->format() == PixelFormat::U8 && - display_frame->channel_count() == VideoParams::kRGBChannelCount) { + display_frame->channel_count() == + VideoParams::kRGBChannelCount) { backend_neutral_cpu_display_frame_ = display_frame; - backend_neutral_cpu_image_ = QImage( - reinterpret_cast(display_frame->const_data()), - display_frame->width(), display_frame->height(), - display_frame->linesize_bytes(), QImage::Format_RGB888); + backend_neutral_cpu_image_ = + QImage(reinterpret_cast(display_frame->const_data()), + display_frame->width(), display_frame->height(), + display_frame->linesize_bytes(), QImage::Format_RGB888); source_image = backend_neutral_cpu_image_; } else { backend_neutral_cpu_display_frame_.reset(); - const int bytes_per_pixel = display_frame->video_params().GetBytesPerPixel(); + const int bytes_per_pixel = + display_frame->video_params().GetBytesPerPixel(); if (backend_neutral_cpu_image_.size() != - QSize(display_frame->width(), display_frame->height()) || + QSize(display_frame->width(), display_frame->height()) || backend_neutral_cpu_image_.format() != QImage::Format_RGBA8888) { - backend_neutral_cpu_image_ = - QImage(display_frame->width(), display_frame->height(), - QImage::Format_RGBA8888); + backend_neutral_cpu_image_ = QImage(display_frame->width(), + display_frame->height(), + QImage::Format_RGBA8888); } for (int y = 0; y < display_frame->height(); ++y) { @@ -1547,20 +1555,18 @@ bool ViewerDisplayWidget::DrawBackendNeutralTexture(const TexturePtr &texture, // Renders a backend-neutral frame by drawing into an offscreen backend texture, // downloading it to CPU memory, then painting that image with QPainter. void ViewerDisplayWidget::DrawBackendNeutral(const ColorTransformJob &ctj, - QPainter *painter) + QPainter *painter) { if (!painter || !painter->isActive()) { return; } - const int texture_width = - static_cast(width() * devicePixelRatioF()); - const int texture_height = - static_cast(height() * devicePixelRatioF()); + const int texture_width = static_cast(width() * devicePixelRatioF()); + const int texture_height = static_cast(height() * devicePixelRatioF()); - const VideoParams offscreen_params( - texture_width, texture_height, PixelFormat::U8, - VideoParams::kRGBAChannelCount); + const VideoParams offscreen_params(texture_width, texture_height, + PixelFormat::U8, + VideoParams::kRGBAChannelCount); if (!backend_neutral_texture_ || backend_neutral_texture_->params() != offscreen_params) { @@ -1570,7 +1576,7 @@ void ViewerDisplayWidget::DrawBackendNeutral(const ColorTransformJob &ctj, backend_neutral_buffer_.resize( texture_width * texture_height * VideoParams::GetBytesPerPixel(PixelFormat::U8, - VideoParams::kRGBAChannelCount)); + VideoParams::kRGBAChannelCount)); } if (!backend_neutral_texture_ || backend_neutral_texture_->IsDummy()) { @@ -1589,11 +1595,10 @@ void ViewerDisplayWidget::DrawBackendNeutral(const ColorTransformJob &ctj, const int bytes_per_pixel = VideoParams::GetBytesPerPixel( PixelFormat::U8, VideoParams::kRGBAChannelCount); - QImage img(reinterpret_cast( - backend_neutral_buffer_.constData()), - texture_width, texture_height, - texture_width * bytes_per_pixel, - QImage::Format_RGBA8888_Premultiplied); + QImage img( + reinterpret_cast(backend_neutral_buffer_.constData()), + texture_width, texture_height, texture_width * bytes_per_pixel, + QImage::Format_RGBA8888_Premultiplied); img.setDevicePixelRatio(devicePixelRatioF()); // QImage references backend_neutral_buffer_ directly; draw it before the diff --git a/app/widget/viewer/viewerdisplay.h b/app/widget/viewer/viewerdisplay.h index 56aa8c9a6..291d95708 100644 --- a/app/widget/viewer/viewerdisplay.h +++ b/app/widget/viewer/viewerdisplay.h @@ -336,7 +336,8 @@ private: void DrawBackendNeutral(const ColorTransformJob &ctj, QPainter *painter); bool DrawBackendNeutralFrame(const FramePtr &frame, QPainter *painter); - bool DrawBackendNeutralTexture(const TexturePtr &texture, QPainter *painter); + bool DrawBackendNeutralTexture(const TexturePtr &texture, + QPainter *painter); /** * @brief Internal reference to the OpenGL texture to draw. Set in SetTexture() and used in paintGL(). diff --git a/app/widget/viewer/viewerqueue.h b/app/widget/viewer/viewerqueue.h index 0cb9c54d3..33ea2fbe4 100644 --- a/app/widget/viewer/viewerqueue.h +++ b/app/widget/viewer/viewerqueue.h @@ -38,10 +38,19 @@ struct ViewerPlaybackFrame { class ViewerQueue : public std::list { public: - ViewerQueue() : mutex_(new QMutex()) {} + ViewerQueue() + : mutex_(new QMutex()) + { + } ViewerQueue(const ViewerQueue &other) - : std::list(other), mutex_(new QMutex()) {} - ~ViewerQueue() { delete mutex_; } + : std::list(other) + , mutex_(new QMutex()) + { + } + ~ViewerQueue() + { + delete mutex_; + } ViewerQueue &operator=(const ViewerQueue &other) { std::list::operator=(other); diff --git a/app/window/CMakeLists.txt b/app/window/CMakeLists.txt index 5bfd0695e..ce6d5408c 100644 --- a/app/window/CMakeLists.txt +++ b/app/window/CMakeLists.txt @@ -17,7 +17,7 @@ add_subdirectory(mainwindow) set(OLIVE_SOURCES - ${OLIVE_SOURCES} - PARENT_SCOPE + ${OLIVE_SOURCES} + PARENT_SCOPE ) diff --git a/app/window/mainwindow/CMakeLists.txt b/app/window/mainwindow/CMakeLists.txt index f9bade703..a327410b1 100644 --- a/app/window/mainwindow/CMakeLists.txt +++ b/app/window/mainwindow/CMakeLists.txt @@ -15,16 +15,16 @@ # along with this program. If not, see . set(OLIVE_SOURCES - ${OLIVE_SOURCES} - window/mainwindow/mainmenu.h - window/mainwindow/mainmenu.cpp - window/mainwindow/mainstatusbar.h - window/mainwindow/mainstatusbar.cpp - window/mainwindow/mainwindow.h - window/mainwindow/mainwindow.cpp - window/mainwindow/mainwindowlayoutinfo.h - window/mainwindow/mainwindowlayoutinfo.cpp - window/mainwindow/mainwindowundo.h - window/mainwindow/mainwindowundo.cpp - PARENT_SCOPE + ${OLIVE_SOURCES} + window/mainwindow/mainmenu.h + window/mainwindow/mainmenu.cpp + window/mainwindow/mainstatusbar.h + window/mainwindow/mainstatusbar.cpp + window/mainwindow/mainwindow.h + window/mainwindow/mainwindow.cpp + window/mainwindow/mainwindowlayoutinfo.h + window/mainwindow/mainwindowlayoutinfo.cpp + window/mainwindow/mainwindowundo.h + window/mainwindow/mainwindowundo.cpp + PARENT_SCOPE ) diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp index 860d9d7cc..a090d11da 100644 --- a/app/window/mainwindow/mainmenu.cpp +++ b/app/window/mainwindow/mainmenu.cpp @@ -787,8 +787,8 @@ void MainMenu::SequenceCacheClearTriggered() void MainMenu::HelpFeedbackTriggered() { - QDesktopServices::openUrl( - QStringLiteral("https://github.com/OakVideoEditorCommunity/oak/issues")); + QDesktopServices::openUrl(QStringLiteral( + "https://github.com/OakVideoEditorCommunity/oak/issues")); } void MainMenu::Retranslate()